gpt4 book ai didi

c# - 如何隐藏 miniprofiler?

转载 作者:可可西里 更新时间:2023-11-01 08:43:08 26 4
gpt4 key购买 nike

我正在使用 MVC Mini 分析器来检查我的应用程序特定部分的速度,并希望将其保留在那里,以防万一以后发生什么事情,我可能需要检查“出了什么问题”。这不是一个完整的日志集,但它可以帮助您了解导致页面耗时过长的原因。

因此,我的目标是隐藏它并仅在请求带有特定参数时对其进行配置。但是,我的所有尝试都没有达到我预期的效果。

这已经完成了不在屏幕上显示它的技巧( View 中的代码):

@if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
@MvcMiniProfiler.MiniProfiler.RenderIncludes()
}

这是更接近的尝试。正确隐藏了迷你分析器信息,但在我显示它的那一刻,它分析了我停止显示后的所有内容。所以,假设我分析我的页面,它需要 3 秒。我删除了查询参数并再次加载页面 3 次。我再次添加我的参数,我看到 4 组配置文件信息。这意味着它会跟踪所有内容,我想知道它是否会出现内存问题。

试图让这种情况不再发生:

尝试 1:

protected void Application_BeginRequest()
{
if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
MiniProfiler.Start();
}
}

尝试 2:

protected void Application_EndRequest()
{
MiniProfiler.Stop(!Request.QueryString.AllKeys.Contains("showProfiler"));
}

尝试 3:

protected void Application_EndRequest()
{
MiniProfiler.Stop(true);
}

这些都不起作用。有什么想法吗?

最佳答案

home page (请参阅“放弃探查器 session ”部分)探查器具有正在寻找的使用模式:

protected void Application_BeginRequest()
{
MvcMiniProfiler.MiniProfiler.Start();
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if(!CurrentUserIsAllowedToSeeProfiler())
{
MvcMiniProfiler.MiniProfiler.Stop(discardResults: true);
}
}

CurrentUserIsAllowedToSeeProfiler 的实现将检查查询字符串是否包含触发探查器的键。


编辑:

你也可以看看他们的Example Project看看他们如何在某些情况下实现禁用它。他们的检查是查看您是否通过本地主机访问它,但您当然可以更改它以检查查询字符串。

基于此,似乎“尝试 #1”应该是诀窍。请注意,“that is close”和“attempt #1”之间的区别是前者正在寻找查询字符串 profiling,而您的 Attempt #1 正在检查 showProfiler。会不会只是一个简单的查询字符串混淆?

关于c# - 如何隐藏 miniprofiler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604595/

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