【发布时间】:2012-08-16 11:57:39
【问题描述】:
我正在尝试使用 C# 中的 DOTCMIS 连接到 sharepoint 2010。 以与这个问题非常相似的方式:
Connecting via CMIS (dotCMIS) to SP2010: exception unauthorised
(但是,我的代码在 MSCRM 2011 自定义工作流活动中运行)
我的代码是:
var parameters = new Dictionary<string, string>();
parameters[SessionParameter.BindingType] = BindingType.AtomPub;
parameters[SessionParameter.AtomPubUrl] = "http://mySPServer/sites/scans/_vti_bin/cmis/rest/MyRepositoryIDGUID?getRepositoryInfo";
parameters[SessionParameter.User] = "MyUser";
parameters[SessionParameter.Password] = "MyPassword";
parameters[SessionParameter.AuthenticationProviderClass] = "DotCMIS.Binding.NtlmAuthenticationProvider";
var sessionFactory = SessionFactory.NewInstance();
return sessionFactory.GetRepositories(parameters)[0].CreateSession();
但是,每当我运行它时,我目前都会遇到以下异常:
Sif 一般错误:DotCMIS.Exceptions.CmisRuntimeException:无法加载身份验证提供程序:值不能为空。
参数名称:类型---> System.ArgumentNullException:值不能为空。
参数名称:类型
在 System.Activator.CreateInstance(类型类型,布尔非公共)
在 DotCMIS.Binding.Impl.CmisBinding..ctor(IDictionary2 sessionParameters, AbstractAuthenticationProvider authenticationProvider)
--- End of inner exception stack trace ---
at DotCMIS.Binding.Impl.CmisBinding..ctor(IDictionary2 sessionParameters, AbstractAuthenticationProvider authenticationProvider)
在 DotCMIS.Client.Impl.CmisBindingHelper.CreateAtomPubBinding(IDictionary2 parameters, AbstractAuthenticationProvider authenticationProvider)
at DotCMIS.Client.Impl.SessionFactory.GetRepositories(IDictionary2 参数,IObjectFactory objectFactory,AbstractAuthenticationProvider authenticationProvider,ICache 缓存)
在 TPR.SIF.WorkflowActivity.SessionService.CreateNewSession(字符串 dmWebServiceUrl,字符串用户名,字符串密码)
在 TPR.SIF.WorkflowActivity.SifService.SetUpServices(CodeActivityContext codeActivityContext)
在 TPR.SIF.WorkflowActivity.SifService.Execute(CodeActivityContext codeActivityContext)
错误发生在以下行:
sessionFactory.GetRepositories(parameters)[0].CreateSession();
在 CMIS 库中调用此行
if (sessionParameters.TryGetValue(SessionParameter.AuthenticationProviderClass, out authenticationProviderClass))
{
try
{
Type authProvType = Type.GetType(authenticationProviderClass);
authenticationProvider = (AbstractAuthenticationProvider)Activator.CreateInstance(authProvType);
有谁知道为什么不能创建"DotCMIS.Binding.NtlmAuthenticationProvider"?
非常感谢。
肖恩。
【问题讨论】:
-
我也遇到了相关的错误,我也需要帮助 :) stackoverflow.com/questions/29382247/…
标签: c# apache sharepoint cmis dotcmis