1

我在 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 的行(上面代码段中从底部倒数第二个)抛出 COMException。

异常详情:

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

来源 “Microsoft.SharePoint.Client.Runtime”

HResult/ 错误代码 -2147418113

StackTrace 在 Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.EnsureInited() 在 Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.LogonIdentity(String username, SecureString password) 在 Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor(String username, SecureString密码)在 download.aspx.cs:line 104 中的 PivotServer.Download.SaveDownloadListItem()

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

在此先感谢,任何建议、建议、代码示例都非常感谢。

4

6 回答 6

1

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

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

于 2014-01-07T12:15:05.593 回答
0

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

于 2013-09-30T19:40:42.300 回答
0

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

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

它解决了我的问题。

希望能有所帮助。

于 2013-09-13T13:23:57.263 回答
0

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

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

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

于 2013-12-17T18:27:41.557 回答
0

在我设置 Internet 安全设置后它得到了解决。转到 Internet 选项 -> 安全 -> Internet -> 自定义级别 -> 启用 .Net Framework 和其他几个 activex 控件。

于 2015-01-05T11:35:52.637 回答