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 を「ローカル システム」に設定することを提案しましたが、違いはありませんでした。
アドバイス、提案、コードサンプルをよろしくお願いします。