我有一个使用母版页的简单Web表单应用程序。
我按照说明如何让mini-profiler工作。我得到了所有的统计数据。现在我真的不知道如何打开或关闭它。
我想过使用一个查询字符串并查找它Application_BeginRequest
- 如果它在那里只需使用分析器整个会话.... OK-在该阶段没有加载Session并且如果使用{{ 1}}和一个静态变量,它加载很多次,有时候探测器会工作,有时不会,我不知道为什么?
我现在的简单方法是。
Application_AcquireRequestState
这样工作正常但我必须在每个请求上添加一个查询参数。不好。我之前从未使用过protected void Application_BeginRequest(object sender, EventArgs e)
{
MiniProfiler profiler = null;
if (Request.QueryString["p"] != null)
{
profiler = MiniProfiler.Start();
using (profiler.Step("Application_BeginRequest"))
{
}
}
}
所以我不能100%确定它是如何在那里运作的。
我可以在预先定义的时间内设置变量的最佳方法是什么,以便在我以秘密方式打开它时,探查器将始终加载?
编辑并解决我的问题
global.asax
答案 0 :(得分:4)
如果您通过MiniProfiler.MVC3软件包添加了MiniProfiler,那么它会添加一个C#文件以方便您进行配置:查看App_Start\MiniProfiler.cs
,特别查看Init
哪个代码可以自行决定是否开始分析(request.IsLocal
是默认值)
在您的情况下,我建议您在 start 条件中检查Cookie,并检查更完整的“我是开发人员,还是只听到特殊Cookie的人”< em>结束条件;特别是,如果您调用MiniProfiler.Stop(false)
,则会丢弃所有数据。然后,你以“秘密方式打开”和“预先定义的时间”都可以通过cookie以“我是开发人员”的方式廉价实现,以确保只通过设置cookie就不会滥用它。