大家好,
我目前正在尝试使用DotCMIS / C#连接到Alfresco(DMS),以便我可以通过我的程序创建/定位/检索/存档文件。
参考:https://chemistry.apache.org/dotnet/getting-started-with-dotcmis.html
注意:我尝试了不同的“AtomPubUrl”来测试哪个URL可能有效。
[CMIS v1.0]
对于Alfresco版本3.x: http:// [主持人]:[端口] / alfresco / service / cmis
对于Alfresco 4.0.x和Alfresco 4.1.x: http:// [host]:[port] / alfresco / cmisatom
对于Alfresco 4.2: http:// [host]:[port] /alfresco/api/-default-/public/cmis/versions/1.0/atom
[CMIS v1.1]
对于Alfresco 4.2: http:// [host]:[port] /alfresco/api/-default-/public/cmis/versions/1.1/atom
这是我的代码:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub;
//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/service/cmis";
//投掷:“未找到
//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/cmisatom";
//投掷:“未经授权
//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom";
//投掷:“未经授权
//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom";
//投掷:“未经授权
parameters[DotCMIS.SessionParameter.User] = "admin ";
parameters[DotCMIS.SessionParameter.Password] = "admin";
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.GetRepositories(parameters)[0].CreateSession();
之前,我遇到了一个异常CmisRuntimeException - “ SendFailure ”,但现在它变成了“未找到”/“未经授权”。
有人可以解释我为什么会遇到这些错误吗?或者我的代码有什么问题?
提前致谢!
最好的祝福!
祝你有愉快的一天。
答案 0 :(得分:0)
宣传对答案的评论
您需要为正在运行的Alfresco版本使用正确的CMIS服务URL。尝试在5.x服务器上使用3.x URL是不可能的。您可以在该版本的文档中找到给定版本的CMIS服务URL,也可以从Alfresco Wiki
中获取所有网址的概述其次,您需要对CMIS服务器进行身份验证。您不必使用管理员,但您确实需要使用有效的凭据
假设您有一台4.2服务器,管理员帐户名为admin
,密码为admin
,则需要
parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom";
parameters[DotCMIS.SessionParameter.User] = "admin ";
parameters[DotCMIS.SessionParameter.Password] = "admin";
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.GetRepositories(parameters)[0].CreateSession();