我正在使用 MVC Mini 分析器来检查应用程序特定部分的速度,并希望将其保留在那里,以防以后发生某些情况并且我可能需要检查“出了什么问题”。它不是完整的日志集,但它对于了解导致页面花费很长时间的原因非常方便。
因此,我的目标是隐藏它并仅在请求带有特定参数时才对其进行配置。然而,我的所有尝试都没有达到我预期的效果。
这已经完成了不在屏幕上显示它的技巧(视图中的代码):
@if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
@MvcMiniProfiler.MiniProfiler.RenderIncludes()
}
这是更接近的尝试。正确隐藏了迷你分析器信息,但在我显示它的那一刻,它分析了自从我停止显示它以来的所有内容。假设我分析我的页面,需要 3 秒。我删除了查询参数并加载页面三次。我再次添加参数,然后看到 4 组个人资料信息。这意味着它会跟踪所有内容,我想知道它是否会带来内存问题。
尝试让这种情况不再发生:
尝试1:
protected void Application_BeginRequest()
{
if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
MiniProfiler.Start();
}
}
尝试2:
protected void Application_EndRequest()
{
MiniProfiler.Stop(!Request.QueryString.AllKeys.Contains("showProfiler"));
}
尝试3:
protected void Application_EndRequest()
{
MiniProfiler.Stop(true);
}
这些都不起作用。有任何想法吗?
The 主页 http://miniprofiler.com(请参阅“放弃探查器会话”部分)探查器具有正在寻找的使用模式:
protected void Application_BeginRequest()
{
MvcMiniProfiler.MiniProfiler.Start();
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if(!CurrentUserIsAllowedToSeeProfiler())
{
MvcMiniProfiler.MiniProfiler.Stop(discardResults: true);
}
}
您的实施CurrentUserIsAllowedToSeeProfiler
将检查查询字符串是否包含触发探查器的键。
EDIT:
你也可以看看他们的示例项目 http://code.google.com/p/mvc-mini-profiler/source/browse/#git%2FSample.Mvc看看他们如何在某些情况下禁用它。他们的检查是查看您是否通过本地主机访问它,但您当然可以更改它以检查查询字符串。
基于此,看来“尝试#1”应该是诀窍。请注意,“that is close”和“attempt #1”之间的区别在于前者正在寻找查询字符串profiling
,而你的尝试#1正在检查showProfiler
。它可能只是一个简单的查询字符串混合吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)