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」フォルダーにコピーします。