Sitecore Analytics - Tracker.Current 在通过管道调用时为空

Sitecore Analytics - Tracker.Current is null when invoked through a pipeline

我有以下方法

GetValue()
{
    var value = Tracker.Current.Contact;
}

始终执行。

然而,当我从 ItemResolver 管道调用上述方法时,Tracker.Current 始终为 null。

public class CustomItemResolver : HttpRequestProcessor
{
     public override void Process(HttpRequestArgs args)
     {
        GetValue();
     } 
}

我在这里错过了什么?

Tracker 在 startAnalytics 管道期间初始化,由 renderLayout 管道 Sitecore.Analytics.Pipelines.HttpRequest.StartAnalytics 处理器启动。

如果确实需要提前初始化Tracker,可以使用以下方法:

Sitecore.Analytics.Tracker.StartTracking();

请记住,Sitecore 启动 Tracker 的时间要晚得多,我很确定他们在 ItemResolver 之前没有这样做是有原因的,所以您要自行负责。