2016-04-29 28 views
3

我們遇到以下問題:當我們通過EXM發送電子郵件時,電子郵件正文內的鏈接對某些用戶不起作用。某些用戶的EXM電子郵件中的鏈接被破壞

電子郵件身體內部鏈接總是被默認轉換爲類似:

http://domainname/sitecore/RedirectUrlPage.aspx?ec_contact_id=xxxx84B137D2037C7D180&ec_message_id=xxxxB4CEAA3FD1A3B&ec_url=%2fthelinkpath 

這顯然是用於跟蹤的原因做了。

但是,某些用戶在導航鏈接時遇到404錯誤。日誌總是說以下內容:

ERROR EmailCampaign: Object reference not set to an instance of an object. 
Exception: System.NullReferenceException 
Message: Object reference not set to an instance of an object. 
Source: Sitecore.Analytics 
    at Sitecore.Analytics.Tracking.StandardSession.InitializePage(ICurrentPageContext currentPageContext, ICurrentPageContext oldPage) 
    at Sitecore.Analytics.Tracking.StandardSession.Identify(String userName) 
    at Sitecore.Modules.EmailCampaign.Core.Pipelines.RedirectUrl.IdentifyContact.Process(RedirectUrlPipelineArgs args) 
    at (Object , Object[]) 
    at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) 
    at Sitecore.Modules.EmailCampaign.UI.RedirectUrlPage.HandleMessageEvent(ID messageId, ID contactId) 
    at Sitecore.Modules.EmailCampaign.UI.MessageEventPage.OnLoad(EventArgs e) 

用戶是要明確自己的cookie或使用其他瀏覽器,或使用隱身模式來解決這個錯誤的唯一方法。用戶當前從網站註銷。

Sitecore 8.0 + EXM

有沒有人遇到過這個問題?

+0

你有任何Sitecore配置文件中設置的IP地址限制嗎?例如不跟蹤開發團隊或營銷團隊的任何訪問? – Shriroop

+4

這是一個已知的錯誤,如果您當前有一個會話被識別爲另一個用戶,則會發生這種情況。它將在EXM的下一個版本中得到修復。我相信最簡單的解決方案就是用你自己的管道處理器代替並處理異常(Sitecore.Analytics會拋出這個異常) – Tchami

回答

4

的確,這是因爲之前會話中存儲的cookie,謝謝Tchami。

Sitecore的支持答案是一樣的:

當你在同一個瀏覽器打開多個郵件與多個 的ContactID的會出現此錯誤。

但他們沒有提出任何解決方案,除了清除cookie或使用其他瀏覽器。

但是,即使對於這種很少出現的情況,我們也不想破壞用戶體驗。

所以,爲了處理異常,我們發現下面的管線處理器,應該被改寫:

<processor type ="Sitecore.Modules.EmailCampaign.Core.Pipelines.RedirectUrl.IdentifyContact, Sitecore.EmailCampaign" /> 

您可以看看定製的處理器here的代碼。

+0

認真嗎?哇,這真的是* p – Liam

相關問題