在我们的一个项目中,我们遇到了随机会话超时问题。根据最近的发现,我注意到Sitecore Analytics.Robots.SessionTimeout可能是造成它的原因。
我们注意到在随机会话超时时,超时值设置为1分钟而不是120分钟。
在搜索完所有配置文件后,我们注意到只有一个配置的超时设置为1分钟。
我们认为通过将分析机器人会话超时增加到120分钟将解决我们的随机超时问题,但我的问题是,通过允许机器人会话生存120分钟而不是1分钟,这会产生任何负面的性能影响或安全问题吗?
感谢您的建议。
答案 0 :(得分:2)
这对我来说似乎是一个不同的问题......我认为这不是机器人设置为1分钟会话的问题。你说这个问题是“随机的”,但真正发生的是一些网站访问者被错误识别为机器人吗?
我认为你不会通过改变机器人超时来看到任何性能影响,但这将是治疗症状而不是找到真正的原因。
答案 1 :(得分:2)
我已经使用Sitecore记录了这个问题,这是他们对这个问题的回应。
我不认为该行为应该被视为一个bug,因为 Sitecore CMS旨在与ASP.NET WebForms技术一起使用。 使用Web表单时,bot检测依赖于 控制在 这页纸。很自然,你不能在ASP.NET MVC中使用它 应用程序,但有一个简单的解决方案 - 把以下代码 在元素内:
<%
if (Context.Diagnostics.Tracing || Context.Diagnostics.Profiling)
{
Response.Write("<!-- Visitor identification is disabled because debugging is active. -->");
}
else if (Tracker.IsActive && (Tracker.Visitor.VisitorClassification == 925))
{
Response.Write("<link href=\"/layouts/System/VisitorIdentification.aspx\" rel=\"stylesheet\" type=\"text/css\" />");
}
%>
答案 2 :(得分:0)
发生这种情况是因为跟踪预防和广告拦截器阻止了 Sitecore's robot detection component (VisitorIdentification.js
) 检测人类行为。
为了防止登录用户被错误归类为机器人,我们添加了以下登录后代码以将任何错误归类的访问者标记为人类:
using Sitecore.Analytics;
using Sitecore.Analytics.Core;
// ...
private static void IdentifyUserAsHuman()
{
const int HumanVisitorClassification = 0;
var currentSession = Tracker.Current.Session;
var isClassifiedAsHuman = ContactClassification.IsHuman(currentSession.Contact.System.Classification);
if (!isClassifiedAsHuman)
{
currentSession.SetClassification(HumanVisitorClassification, HumanVisitorClassification, true);
}
}