gpt4 book ai didi

c# - 使用 MiniProfiler 时如何从分析中删除特定的 URL

转载 作者:太空狗 更新时间:2023-10-29 20:27:03 25 4
gpt4 key购买 nike

有时在使用 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 的结果,我稍后在 Application Life Cycle 中进行了此检查在尝试删除不需要的结果时,我发现我仍然得到了结果。

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();
}

我认为这可行的原因是 BeginRequestEndRequest 事件不会针对静态资源触发。

我的理论是您的某些请求确实是针对静态内容的,因此您所描述的事件不会触发。

使用您的 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));
}
}

关于c# - 使用 MiniProfiler 时如何从分析中删除特定的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36426669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com