我遇到了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规则也不起作用。
我可以看到 Sitecore_analytics 数据库中访问者表的 VisitCount 列未更新。
是否有其他人遇到类似问题并知道出了什么问题?
答案 0 :(得分:0)
您可以尝试调用Tracker.Visitor.LoadAll()
方法,以确保从内存和分析数据库中提取访问数据。