我安装了Glimpse(Glimpse MVC4)和MiniProfiler(支持EF)。
我还为Glimpse安装了MiniProfiler插件。
我有所有连接和工作。我想允许Glimpse的配置来确定MiniProfiler是否应该开始分析。也就是说,如果启用了Glimpse(通过Glimpse.axd而不是通过配置设置),我想在Application_BeginRequest()方法中调用MiniProfiler.Start()。所以,像这样:
protected void Application_BeginRequest()
{
if (Glimpse.IsRunning)
{
MiniProfiler.Start();
}
}
有没有办法确定是否启用了Glimpse?
答案 0 :(得分:5)
技术上有一种方法,但我称之为hacky充其量。我会让你决定它是否适合你的目的。
var policyString = HttpContext.Current.Items["__GlimpseRequestRuntimePermissions"].ToString();
RuntimePolicy glimpsePolicy;
RuntimePolicy.TryParse(policyString, out glimpsePolicy);
if (!glimpsePolicy.HasFlag(RuntimePolicy.Off))
{
MiniProfiler.Start();
}
我称之为黑客的原因是因为虽然Glimpse在请求开始时可能是On
,但可能会稍后转为Off
。
此行为的一个示例是,当ASP.NET开始报告不受支持的媒体类型(如图像)时,Glimpse会自动关闭。在HTTP Handler运行之前,ASP.NET无法知道媒体类型。在这种情况下,Glimpse会说它在请求开始时处于启用状态,但在结束时它将会关闭。