EXMメッセージを送信する際、アイテムURLの生成でエラーが発生する


説明

Email Experience Manager(EXM)のManager RootのアイテムがSitecore.configファイルの<sites>セクションで定義されたWebサイトのルート アイテムの外に配置されている場合、EXMメッセージを送信する際に、以下のエラーがログに出力される場合があります。

ERROR [UpdateListSubscriptionHandler] Failed to process list operation for 'xDB.Tracker PII removed'
Exception: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: targetSite
Source: Sitecore.Kernel
   at Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String argumentName)
   at Sitecore.Links.UrlBuilders.BaseUrlBuilder`1.ResolveServer(SiteInfo targetSite)
   at Sitecore.Links.UrlBuilders.ItemUrlBuilder.AddServer(UrlBuildModel model, ItemUrlBuilderOptions options)
   at Sitecore.Links.UrlBuilders.BaseUrlBuilder`1.BuildUrl(Item item, TOptions options)
   at Sitecore.Modules.EmailCampaign.Core.HostnameMapping.HostnameMappingService.GetServerUrl(Item item)
   at Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.SetServerUrl.Process(GenerateLinkPipelineArgs args)
   ...

解決策

本問題を解決するには、\App_Config\Include\zzzフォルダ内に<site>の定義を含む設定のパッチ ファイルを作成し、EXMマネージャー ルートの<site>定義を追加します。 <site>の定義は、以下に従って設定する必要があります:

例:

<site name="example" inherits="website" rootPath="/sitecore/content" startItem="/Email" targetHostName="<site host name>" />

:複数のマネージャ ルートがある場合、それぞれに<site>の定義を明確に追加する必要があります。