在 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 table 的 VisitCount 列=] 数据库未更新。
有没有其他人遇到过类似的问题并且知道哪里出了问题?
您可以尝试调用 Tracker.Visitor.LoadAll()
方法以确保从内存和分析数据库中提取访问数据。
我在使用 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 table 的 VisitCount 列=] 数据库未更新。
有没有其他人遇到过类似的问题并且知道哪里出了问题?
您可以尝试调用 Tracker.Visitor.LoadAll()
方法以确保从内存和分析数据库中提取访问数据。