アプリケーション起動時のデッドロック


解説

フェデレーション エクスペリエンス マネージャー (FXM)フェデレーション認証を使用すると、Sitecore XPインスタンスが起動しなくなる可能性があります。

Sitecore XPアプリケーションが起動しない場合、プロセスのメモリ ダンプを作成し、内容をご確認ください。FxmSiteProvider.FxmSitesおよびDefaultSiteContextFactory.GetSites()メソッドを呼び出すスレッド間にデッドロックがある場合、この記事に記載されている以下の解決策を適用してください。

解決策

この問題を解決するには、ソリューションの\App_Config\Include\zzzフォルダに設定パッチ ファイルを作成します:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
  <sitecore role:require="Standalone or ContentDelivery or ContentManagement">
    <hooks>
      <hook type="Sitecore.Owin.Authentication.Pipelines.CookieAuthentication.ValidateIdentity.CheckIdentityProvider, Sitecore.Owin.Authentication" resolve="true" patch:before = "*[1]" />
    </hooks>
  </sitecore>
</configuration>

この設定パッチ ファイルは、すべてのContent ManagementおよびContent Deliveryインスタンスに追加する必要があります。このパッチは、Sitecore XPがスタンドアロン ロールとして実行されている場合にも適用できます。上記の設定ファイルを適用した後、アプリケーション起動時に例外がログに出力されます。これはハンドルされた例外であり、アプリケーションのライフタイムを通じて1度だけ出力されますが、機能やパフォーマンスに悪影響を与えることはないため、無視しても問題ありません。 

備考

デッドロックによりアプリケーションの起動時にサイトが応答しなくなる」問題が、同様の症状を引き起こす可能性があります。