为会话启用Mini-profiler的简单方法是什么?

时间:2013-02-07 11:57:48

标签: .net session mvc-mini-profiler

我有一个使用母版页的简单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

1 个答案:

答案 0 :(得分:4)

如果您通过MiniProfiler.MVC3软件包添加了MiniProfiler,那么它会添加一个C#文件以方便您进行配置:查看App_Start\MiniProfiler.cs,特别查看Init哪个代码可以自行决定是否开始分析(request.IsLocal是默认值)

在您的情况下,我建议您在 start 条件中检查Cookie,并检查更完整的“我是开发人员,还是只听到特殊Cookie的人”< em>结束条件;特别是,如果您调用MiniProfiler.Stop(false),则会丢弃所有数据。然后,你以“秘密方式打开”和“预先定义的时间”都可以通过cookie以“我是开发人员”的方式廉价实现,以确保只通过设置cookie就不会滥用它。