如何在使用MiniProfiler时从配置文件中删除特定的URL
有时使用miniprofiler时,只有一些你不关心的请求。 在我的情况下,我并不在乎signalr,umbraco ping和一些要求,当我想知道用户是否闲置。
为避免miniprofiler使用这些类型的请求(并提供结果),我已将以下代码添加到我的global.asax.cs文件中:
protected void Application_BeginRequest()
{
if (
(Request.IsLocal || Request.UserHostAddress == "37.49.143.197")
&& !(Request.RawUrl.Contains("/signalr/")
|| Request.RawUrl.Contains("/idle/verify")
|| Request.RawUrl.Contains("/idle/interaction")
|| Request.RawUrl.Contains("/umbraco/ping")
)
)
{
MiniProfiler.Start();
}
}
鉴于我仍然收到包含给定字符串的URL的结果,我稍后在应用程序生命周期中进行了此项检查,尝试删除不想要的结果,但我仍然可以看到它们。
protected void Application_ProcessRequest()
{
if (Request.RawUrl.Contains("/signalr/")
|| Request.RawUrl.Contains("/idle/verify")
|| Request.RawUrl.Contains("/idle/interaction")
|| Request.RawUrl.Contains("/umbraco/ping")
)
{
MiniProfiler.Stop(discardResults: true);
}
}
但即使我已经这样做了,但我仍然收到不想要的结果。 有谁知道这是怎么回事,我在这里做错了什么?
笔记
应该注意的是,因为我使用Umbraco作为我的基础,所以我使用了MiniProfiler 2.1.0,并开始了我的Global.asax.cs文件,如下所示:
public class MvcApplication : UmbracoApplication
{
protected override void OnApplicationStarted(object sender, EventArgs e)
{
// Setup profiler for Controllers via a Global ActionFilter
GlobalFilters.Filters.Add(new ProfilingActionFilter());
// initialize automatic view profiling
var copy = ViewEngines.Engines.ToList();
ViewEngines.Engines.Clear();
foreach (var item in copy)
{
ViewEngines.Engines.Add(new ProfilingViewEngine(item));
}
...
你有没有尝试过使用IgnoredPaths
?
protected void Application_Start()
{
var ignored = MiniProfiler.Settings.IgnoredPaths.ToList();
ignored.Add("/signalr/");
ignored.Add("/idle/verify");
ignored.Add("/idle/interaction");
ignored.Add("/umbraco/ping");
MiniProfiler.Settings.IgnoredPaths = ignored.ToArray();
}
我认为这将起作用的原因是BeginRequest
和EndRequest
事件不会被解雇为静态资源。
我的理论是,你的一些请求确实适用于静态内容,因此你描述的事件不会触发。
使用您的Umbraco结构,代码如下所示:
protected override void OnApplicationStarted(object sender, EventArgs e)
{
var ignored = MiniProfiler.Settings.IgnoredPaths.ToList();
ignored.Add("/signalr/");
ignored.Add("/idle/verify");
ignored.Add("/idle/interaction");
ignored.Add("/umbraco/ping");
MiniProfiler.Settings.IgnoredPaths = ignored.ToArray();
// Setup profiler for Controllers via a Global ActionFilter
GlobalFilters.Filters.Add(new ProfilingActionFilter());
// initialize automatic view profiling
var copy = ViewEngines.Engines.ToList();
ViewEngines.Engines.Clear();
foreach (var item in copy)
{
ViewEngines.Engines.Add(new ProfilingViewEngine(item));
}
}
链接地址: http://www.djcxy.com/p/91143.html
上一篇: How to remove specific URL's from profiling when using MiniProfiler