c# - 仅针对特定请求的 MVC 跟踪

标签 c# asp.net-mvc asp.net-mvc-3

我想在 mvc 中启用跟踪,具体来说,如果满足特定条件,我想在页面上显示跟踪。

如果我在单个请求的上下文中请求它们,是否可以启用显示System.Diagnostics.Trace写入?

最佳答案

不幸的是,Trace class没有办法根据您想要根据每个请求解决的条件来打开/关闭跟踪。这是一种全有或全无的方法。

也就是说,我强烈推荐MVC MiniProfiler (在 Stack Exchange 网站上使用,尤其是 Stack Exchange Data Explorer 上的公众)。

您的页面上基本上会得到这样的渲染:

MiniProfiler screenshot

您可以根据每个请求设置分析:

using StackExchange.Profiling;
...    
protected void Application_BeginRequest()
{
    if (Request.IsLocal)
    {
        MiniProfiler.Start();
    } 
}

语法与使用 Trace 类略有不同,因为您必须使用 using 语句,如下所示:

using (profiler.Step("Set page title"))
{
    ViewBag.Title = "Home Page";
}

原因是这是一个根本不同的操作;当你追踪时,你正在写出某个时间点的一条信息。在进行分析时,您正在查看时间段,并且 using 语句允许您确定这些时间段的范围。

这可能有点矫枉过正,但我​​很乐意在 Trace 上使用它,因为分析方面以及所显示信息的非侵入性性质(Trace code> 有一个令人讨厌的习惯,会让页面看起来很奇怪)。

关于c# - 仅针对特定请求的 MVC 跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321983/

相关文章:

c#/Access 2010 - 从任务计划程序运行 DoCmd.OutputTo 错误

c# - typeof(T) 与 Object.GetType() 性能对比

c# - 如果浏览器的弹出窗口阻止程序已启用,如何显示错误消息

Java Base64.getDecoder().decode() C# 等效项

asp.net-mvc - Linq/Entity Group 然后计算这些组

asp.net-mvc - MVC 中的 Bootstrap 下拉导航

C# Excel 文件下载损坏文件?

c# - 如何在模型绑定(bind)期间忽略 HttpRequestValidationException 和自己编码的 HTML?

c# - 在开发过程中绕过或关闭 [Authorize(Roles ="")]?

c# - 使用 Controller 级别异常日志记录 (IExceptionFilter.OnException) 时会漏掉哪些异常?