【问题标题】:Connecting to Alfresco with DotCMIS gives https error使用 DotCMIS 连接到 Alfresco 会出现 https 错误
【发布时间】:2013-06-19 11:37:25
【问题描述】:

我想使用 DotCMIS 连接到 Alfresco,但我似乎无法正常工作。我收到此错误“错误:提供的 URI 方案 'http' 无效;预期为 'https'。”我不使用 https 做任何事情,我也不想这样做 :)

当我通过 Google 搜索此错误时,我得到了配置解决方案……但我没有将我的配置用于任何绑定,也没有在 DotCMIS 中定义绑定名称。

我制作了一个会产生错误的小示例项目。 代码:

private static void Main(string[] args)
        {
            string user = "admin";
            string password = "pass";
            string serviceUrl = "http://localhost:port/alfresco/cmis/";
            string objectType = "D:my:objectType";
            string repositoryid = "repositoryId";

            Connector con = new Connector();
            con.Connect(user, password, serviceUrl, repositoryid, objectType);
        }
    }

    public class Connector
    {
        public void Connect(
            string user, string password, string servicesUrl,
            string repositoryId, string objectTypeId_0)
        {
            // default factory implementation
            IDictionary<string, string> parameter = new Dictionary<string, string>();

            // user credentials
            parameter.Add((System.String) (DotCMIS.SessionParameter.User), (System.String) (user));
            parameter.Add((System.String) (DotCMIS.SessionParameter.Password), (System.String) (password));

            // connection settings
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.BindingType),
                (System.String) (DotCMIS.BindingType.WebServices.ToString()));

            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesAclService), (System.String) (servicesUrl
                                                                                                   + "ACLService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesDiscoveryService),
                (System.String) (servicesUrl + "DiscoveryService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesMultifilingService),
                (System.String) (servicesUrl + "MultiFilingService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesNavigationService),
                (System.String) (servicesUrl + "NavigationService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesObjectService), (System.String) (servicesUrl
                                                                                                      +
                                                                                                      "ObjectService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesPolicyService), (System.String) (servicesUrl
                                                                                                      +
                                                                                                      "PolicyService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesRelationshipService),
                (System.String) (servicesUrl + "RelationshipService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesRepositoryService),
                (System.String) (servicesUrl + "RepositoryService?wsdl"));
            parameter.Add(
                (System.String) (DotCMIS.SessionParameter.WebServicesVersioningService),
                (System.String) (servicesUrl + "VersioningService?wsdl"));
            parameter.Add((System.String) (DotCMIS.SessionParameter.RepositoryId), (System.String) (repositoryId));


            ISessionFactory factory = DotCMIS.Client.Impl.SessionFactory.NewInstance();

            ISession session = factory.CreateSession(parameter);
        }

【问题讨论】:

  • 您是否可能告诉 .Net 对于某些类型的 Web 服务它应该需要 https?如果你切换到 atompub 是否有效?
  • 当我使用 AtomPub 时,它似乎可以工作......(但我需要使用 web 服务)我没有设置任何东西来告诉 .Net 使用 https......我创建了一个简单的控制台项目.

标签: c# alfresco cmis dotcmis


【解决方案1】:

检查 DotCMIS README 文件:

Web 服务绑定仅适用于 HTTPS。 .NET 框架不允许通过普通 HTTP 使用 UsernameToken 进行调用。

你必须在这里使用 HTTPS。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多