1

2 つの Web アプリケーション プロジェクトで次のコードを使用しています。どちらも同じソリューションの一部です。2 つのプロジェクトは相互にやり取りします。一方には、ピボット ビューアー コレクション (CXML + 画像) を構築する Web サービスとコードが含まれ、もう一方は、ピボット ビューアー コントロールを表示するコンテナー ページをホストする単純な Web アプリケーションです。

2 つのプロジェクトは、いくつかのリストを含む 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;

コードは 1 つのプロジェクト (Web サービス) で問題なく実行され、もう 1 つのプロジェクト (Web アプリケーション) は、SharePointOnlineCredentials がインスタンス化されている行 (上記のスニペットの下から 2 番目) で 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) は、download.aspx.cs:line 104 の PivotServer.Download.SaveDownloadListItem() にあります。

両方のプロジェクトの web.config ファイルを一致させました。同じエントリが含まれています。関連するスレッドは、アプリケーション プール ID を「ローカル システム」に設定することを提案しましたが、違いはありませんでした。

アドバイス、提案、コードサンプルをよろしくお願いします。

4

6 に答える 6

1

このエラー メッセージが表示され、ScanSafe が bin ファイルをブロックしていたことが判明したため、ログインに必要なhttp://clientconfig.microsoftonline-p.net/ppcrlconfig600.binにアクセスできませんでした。

バイナリ ファイルのダウンロードを許可するように設定を更新すると、エラーが解決されました。

于 2014-01-07T12:15:05.593 に答える
0

同じエラーが発生しましたが、以前の回答ではこれを解決できませんでした。結局、IIS マネージャーでサイト アプリケーションに移動し、[詳細設定] で物理パス資格情報を設定しました。

于 2013-12-17T18:27:41.557 に答える
0

私にも同じ例外がありました。それを解決するには:

アプリ (またはアプリ プール) で使用するアカウントを使用して IE でhttp://login.microsoftonline.comに接続し、ページから証明書をインストールします。

それは私の問題を解決しました。

希望が助けになります。

于 2013-09-13T13:23:57.263 に答える
0

Internet Security Settings を設定したら解決しました。[インターネット オプション] -> [セキュリティ] -> [インターネット] -> [カスタム レベル] -> [.Net Framework とその他のいくつかの ActiveX コントロールを有効にする] に移動します。

于 2015-01-05T11:35:52.637 に答える