GetRepositories(参数)抛出CmisRuntimeException

时间:2015-04-01 03:13:12

标签: c# alfresco dotcmis

大家好,

我目前正在尝试使用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 ”,但现在它变成了“未找到”/“未经授权”。

有人可以解释我为什么会遇到这些错误吗?或者我的代码有什么问题?

提前致谢!

最好的祝福!

祝你有愉快的一天。

1 个答案:

答案 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();