Episerver と ImageVault を使用しており、長い間問題なく動作しています。最近まで、パブリック ユーザーにアルバムを表示する機能が明確な理由もなく機能しなくなりました。プロジェクトのコードの変更や、周囲のサーバー環境の変更はありません。IVFileList コントロールのデータバインド時に例外がスローされます。スローされる例外は、「プライマリ ドメインと信頼されたドメインの間の信頼関係に失敗しました」です。
コードをデバッグしたところ、例外の理由は実際には、episerver が WindowsMemberShipProvider で "Anonymous" というユーザーを見つけようとしたためであるという結論に達しました。以下に単純化されたスタック トレースを含めました (読みやすくするために、いくつかの呼び出しは除外されています)。私は、ユーザー「匿名」を見つけるためにepiservers multiplexproviderへの呼び出しにつながるDataBind呼び出しから始めます。これは、例外をスローするメソッドTranslateToSidsへの呼び出しにつながります。
System.Security.Principal.NTAccount.TranslateToSids(...)
EPiServer.Security.MultiplexingMembershipProvider.FindMembershipUser("Anonymous")
ImageStoreNET.Developer.WebControls.IVFileListData.DataBind()
Web サーバーでローカル アカウントを作成し、「匿名」という名前を付けることで、この問題の回避策を見つけました。そして今、すべてが再び機能します!TranslateToSids メソッドは例外をスローしなくなり、アルバムの写真が表示されるようになりました。
このアカウントが突然必要になった理由を誰かが理論を持っていますか? 私たちが思い出すことができるように、私たちは以前にそれを持っていませんでした。回避策は機能しますが、ローカル アカウントを作成するのは見苦しい解決策のように感じます。これを解決するより正しい方法である必要があります。助言がありますか?