设置SharePointOnlineCredentials - 灾难性故障 - COMException

时间:2013-09-03 23:47:18

标签: sharepoint-2013 credentials comexception

我在2个Web应用程序项目中使用了以下代码,这两个代码都是同一解决方案的一部分。这两个项目相互交互,一个包含构建Pivot Viewer集合的Web服务和代码(CXML +图像),另一个是托管显示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的行上抛出一个COMException(从上面的代码片段底部开始第二个)。

异常详情:

消息:{“灾难性故障(HRESULT异常:0x8000FFFF(E_UNEXPECTED))”}

来源“Microsoft.SharePoint.Client.Runtime”

HResult / ErrorCode -2147418113

Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.EnsureInited()中的

StackTrace         在Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.LogonIdentity(String username,SecureString password)         在Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor(String username,SecureString password)         在PivotServer.Download.SaveDownloadListItem()in download.aspx.cs:第104行

我已经为两个项目匹配了web.config文件,它们包含相同的条目。一个相关的线程建议将应用程序池标识设置为“本地系统”,这没有什么区别。

提前致谢,任何建议,建议和代码示例都非常感谢。

6 个答案:

答案 0 :(得分:1)

我收到此错误消息,结果发现ScanSafe阻止了bin文件,因此我们无法访问登录所需的http://clientconfig.microsoftonline-p.net/ppcrlconfig600.bin

一旦我们更新了设置以允许下载二进制文件,它就解决了错误。

答案 1 :(得分:0)

今天我遇到了同样的问题,它发生在一个天蓝色的网络角色上。 在将web角色部署到azures之后我做了什么:

  1. 通过rdp。
  2. 连接到Web角色服务器
  3. 安装SharePoint客户端组件SDK
  4. 转到IIS管理器
  5. 将应用程序池标识更改为本地管理员(我创建的用于登录Web角色服务器的帐户)

答案 2 :(得分:0)

我有同样的例外。解决它:

使用您将在应用(或应用程序池)中使用的帐户连接到IE中的http://login.microsoftonline.com,然后从该页面安装证书。

它解决了我的问题。

希望可以提供帮助。

答案 3 :(得分:0)

我遇到了同样的问题,并尝试了以上所有事情,没有运气。它原来是我的杀毒软件Bitdefender 2013.当我禁用扫描仪时它起作用了。

答案 4 :(得分:0)

我遇到了同样的错误,以前的答案都没有解决这个问题。我最终转到IIS管理器中的站点应用程序并在“高级设置”下设置物理路径凭据。

答案 5 :(得分:0)

设置Internet安全设置后,它已解决。转到Internet选项 - &gt;安全 - &gt;互联网 - &gt;自定义级别 - &gt;启用.Net Framework和其他一些activex控件。