SXAを使用したヘッドレス サイトがContentDeliveryロールのSitecoreサーバーに接続できなくなる


説明

JSS上のSXAのデプロイでレイアウト サービスの構成をsxa-jssに変更すると、ページ レンダリング中に以下のエラーが発生する場合があります:

Server Error in '/' Application.
Could not find configuration node: databases/database[@id='master']
Description: An unhandled exception occurred.

Exception Details: System.InvalidOperationException: Could not find configuration node: databases/database[@id='master']

この問題は、サイトのデータベースがWebに設定されていることによって、ヘッドレス アプリケーションがContentDeliveryロールで動作するSitecoreサーバーへの接続の確立に失敗した場合に発生します。これによりMasterデータベースへのアクセスができなくなり、Next.jsアプリケーションがSitecoreへの接続に失敗します。

解決策

この問題を解決するには、ソリューションをSitecore XP 10.4.0またはそれ以降にアップグレードします。

または代替案として、設定パッチファイルを作成して、CDサーバーの<databaseName>タグに以下の値を設定して事象の影響を緩和することができます:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">
    <sitecore>
        <layoutService>
            <configurations>
                <config name="sxa-jss">
                    <requestContext type="Sitecore.LayoutService.Configuration.DefaultRequestContext, Sitecore.LayoutService">
                        <databaseName>web</databaseName>
                    </requestContext>
                </config>
            </configurations>
        </layoutService>
    </sitecore>
</configuration>