ドメイン マネージャの構成プロバイダの無効なデフォルト ドメイン


説明

Sitecore は、特定のユーザー アカウントのコンテキストでバックグラウンド操作を実行します。このユーザーが明示的に指定されていない場合、Sitecoreはデフォルトのドメイン マネージャーとして定義されたドメインからの匿名アカウントを使用します。

製品の設計上、「default/Anonymous」をデフォルトのユーザー アカウントとして使用する必要があります。一方で、デフォルトのドメイン マネージャーの定義では、「sitecore」ドメインが既定のドメインとして指定されています。そのため、Sitecoreが「sitecore/Anonymous」ユーザーの誤ったコンテキストでバックグラウンド タスクを実行します。しかし、このユーザー アカウントは、バックグラウンド タスク用に設計されていないため、必要な全ての権限を有しておらず、問題が発生します。

例えば、「<initialize>」パイプラインの「SyncSegmentsProcessor」プロセッサがセグメントの同期を実行する際に、次のエラーが発生します。

INFO [Experience Analytics]: Segment Deploy started.
FATAL [Experience Analytics]: Failed to synchronize segments. Message: Value cannot be null.
Parameter name: item. Details:    
   at Sitecore.Workflows.Simple.WorkflowProvider.GetWorkflow(Item item)
   at Sitecore.ExperienceAnalytics.Core.Extensions.SegmentDefinitionExtensions.GetLanguageIndependentWorkFlowState(SegmentDefinition segmentDefinition)
   at Sitecore.ExperienceAnalytics.Client.Deployment.SyncSegmentsManager.<>c.b__7_0(SegmentDefinition segmentDefinition)
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Sitecore.ExperienceAnalytics.Client.Deployment.SyncSegmentsManager.SynchronizeAllSegments()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Sitecore.ExperienceAnalytics.Client.Deployment.SyncSegmentsProcessor.d__4.MoveNext()

解決策

本事象を解決するには、「Sitecore.Support.141171.config」ファイルをダウンロードして「\App_Config\Include\zzz」フォルダーにコピーします。