0

嗨,大家好,

我目前正在尝试使用 DotCMIS/C# 连接到 Alfresco (DMS),以便我可以通过我的程序从中创建/定位/检索/存档文件。

参考:https ://chemistry.apache.org/dotnet/getting-started-with-dotcmis.html

注意:我尝试了不同的“AtomPubUrl”来测试哪个 URL 可能有效。

[CMIS v1.0]
对于 Alfresco 版本 3.x:http://[host]:[port]/alfresco/service/cmis
对于 Alfresco 4.0.x 和 Alfresco 4.1.x: http://[host]:[端口]/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 ”,现在变成了“ Not Found ”/“ Unauthorized ”。

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

提前致谢!

此致!

祝你今天过得愉快。

4

1 回答 1

0

将评论推广到答案

您需要为您正在运行的 Alfresco 版本使用正确的 CMIS 服务 URL。尝试在 5.x 服务器上使用 3.x URL 是不可能的。您可以在该版本的文档中找到给定版本的 CMIS 服务 URL,或者您可以从Alfresco Wiki获得所有 URL 的概述

其次,您需要对 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();
于 2015-04-07T17:21:31.193 回答