在 Sitecore 7 中通过 DMS 规则计算访问次数不起作用

Counting visits through DMS rules in Sitecore 7 does not work

我在使用 Sitecore 7 解决方案时遇到问题。我无法使 DMS 规则正常工作。

当站点上的访问者访问次数大于 3 时,必须显示一些特定内容。为了能够调试该问题,我制定了自定义 DMS 规则。

var renderingItem = ruleContext.Reference == null ? null : ruleContext.Reference.RenderingItem;

var pageEvents = Tracker.Visitor.DataContext.PageEvents;
        pageEvents =
            pageEvents.Where(y => y.ItemId == renderingItem.ID.ToGuid() && y.Data == PageEventDataName).ToArray();

var count = pageEvents.Count();

int elementVisits = Tracker.Visitor.DataContext.Pages
            .Where(x => x.ItemId == ruleContext.Item.ID.ToGuid())
            .SelectMany(x => x.PageEvents.Where(y => y.ItemId == renderingItem.ID.ToGuid() && y.Data == PageEventDataName))
            .Count();

bool itemHasReachedMaxVisitCount = !Compare(elementVisits);

if (itemHasReachedMaxVisitCount)
            return false;

elementVisits 整数在短时间内计数正常,但过一会儿它会重置为 0,即使访问者是相同的。看起来标准的 DMS 规则也不起作用。

我可以在 [=31] 中看到 Visitors tableVisitCount 列=] 数据库未更新。

有没有其他人遇到过类似的问题并且知道哪里出了问题?

您可以尝试调用 Tracker.Visitor.LoadAll() 方法以确保从内存和分析数据库中提取访问数据。