Core データベースが無効になっている場合、CD環境でSystem.InvalidOperationExceptionがスローされる


解説

コンテンツ配信(CD)インスタンスのデフォルトのインストールでは、Webデータベースのみが使用されます。ただし、一部のサイト定義はCoreデータベースを参照する場合があります:

<site name="shell" .....database="core" ....
<site name="login" .... database="core"....
<site name="modules_shell" ..... database="core"

そのため、Coreデータベースが無効な場合に、CDログに以下のエラー メッセージが記録される場合があります。

ERROR Exception while handling event Sitecore.Data.Eventing.Remote.SavedItemRemoteEvent
Exception: System.InvalidOperationException
Message: Could not find configuration node: databases/database[@id='core']
Source: Sitecore.Kernel
   at Sitecore.Configuration.DefaultFactory.GetConfigNode(String xpath, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetDatabase(String name)
   at Sitecore.Caching.ItemCache.FindAvailableKeys(SiteInfo site, ID itemId)
   at Sitecore.Caching.ItemCache.RemoveItemFromFilterCaches(ID itemId)
   at Sitecore.Caching.ItemCache.RemoveItem(ID itemId)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at Sitecore.Eventing.Subscription`1.Invoke(Object instance, EventContext context)
   at Sitecore.Eventing.EventProvider.RaiseEvent(Object event, Type eventType, EventContext context

解決策

この事象を解決するには、次のファイルで、以下の例のように、shelllogin、およびmodules_shell サイト ノードをコメント アウトします:

...
<!--  <site name="shell" virtualFolder="/sitecore/shell" physicalFolder="/sitecore/shell" rootPath="/sitecore/content" startItem="/home"  language="en" contentLanguage="en" database="core" domain="sitecore" loginPage="/sitecore/login" content="$(defaultContentDatabaseName)" contentStartItem="/Home" enableWorkflow="true" enableTracking="false" analyticsDefinitions="content" xmlControlPage="/sitecore/shell/default.aspx" browserTitle="Sitecore" htmlCacheSize="10MB" registryCacheSize="15MB" viewStateCacheSize="1MB" xslCacheSize="25MB" disableBrowserCaching="true" enableItemLanguageFallback="false" enableFieldLanguageFallback="false" /> -->
... <!-- <site name="login" virtualFolder="/sitecore/login" physicalFolder="/sitecore/login" enableTracking="false" database="core" domain="sitecore" disableXmlControls="true" language="en" /> -->
 ... <!--    <site name="modules_shell" virtualFolder="/sitecore modules/shell" physicalFolder="/sitecore modules/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" content="$(defaultContentDatabaseName)" enableTracking="false" enableWorkflow="true" /> --> ...