3
我遇到Sitecore 7解决方案的问题。我无法使DMS规则正常工作。通过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列不更新。
还有其他人有类似的问题,并知道出了什么问题吗?
您是否尝试过使用'Tracker.Visitor.LoadAll()'从内存以及数据库中加载数据? –
@IanGraham其实我认为你的建议有效......有趣,因为我认为我曾尝试过。也许我在一个错误的属性上调用了LoadAll()。 –
好,精彩。我已经用下面的答案更新了这个问题。 –