【发布时间】:2013-09-03 23:47:18
【问题描述】:
我在 2 个 Web 应用程序项目中使用了以下代码,这两个项目都是同一解决方案的一部分。这两个项目相互交互,一个包含构建 Pivot Viewer 集合(CXML + 图像)的 Web 服务和代码,另一个是托管显示 Pivot Viewer 控件的容器页面的简单 Web 应用程序。
这两个项目需要与包含几个列表的 SharePoint 网站进行交互。列表包含用于构建 CXML 集合和记录对集合公开的数据项的访问的数据。以下代码存在于两个项目中。
using SP = Microsoft.SharePoint.Client;
///.......
string siteURL = ConfigurationManager.AppSettings["SharePointURL"];
ClientContext clientContext = new ClientContext(siteURL);
string listName = ConfigurationManager.AppSettings["ListName"];
SP.List downloadRequestList = clientContext.Web.Lists.GetByTitle(listName);
string username = ConfigurationManager.AppSettings.Get("SharePointCredentialUsername");
string userkey = ConfigurationManager.AppSettings.Get("SharePointCredentialPassword");
SecureString securekey = new SecureString();
for (int i = 0; i < userkey.Length; i++)
securekey.AppendChar(userkey[i]);
SharePointOnlineCredentials credentials = new SharePointOnlineCredentials(username, securekey);//error occurs here
clientContext.Credentials = credentials;
代码在一个项目(Web 服务)中执行没有问题,另一个项目(Web 应用程序)在实例化 SharePointOnlineCredentials 的行(上面的 sn-p 中倒数第二个)抛出 COMException。
异常详情:
消息:{“灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))”}
来源“Microsoft.SharePoint.Client.Runtime”
HResult/ErrorCode -2147418113
StackTrace 在 Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.EnsureInited() 在 Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.LogonIdentity(字符串用户名,SecureString 密码) 在 Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor(字符串用户名,SecureString 密码) 在 download.aspx.cs:line 104 中的 PivotServer.Download.SaveDownloadListItem() 处
我已经为这两个项目匹配了 web.config 文件,它们包含相同的条目。一个相关的线程建议将应用程序池标识设置为“本地系统”,这没有任何区别。
在此先感谢,非常感谢任何建议、建议、代码示例。
【问题讨论】:
标签: sharepoint-2013 credentials comexception