【问题标题】:asp.net mvc exceptions tracingasp.net mvc 异常跟踪
【发布时间】:2009-07-02 07:37:36
【问题描述】:

我正在尝试将 Controller 中捕获的异常发送到 trace.axd 页面,但我似乎无法弄清楚。 我有

<trace enabled="true" localOnly="false" mostRecent="true" pageOutput="false" />

在 web.config 中,我对异常的预期反应是

catch (Exception e)
{
    ViewData["error"] += "Is not number!";
    Trace.TraceError(e.ToString());
    Trace.TraceError(e.StackTrace);
    return View();
}

但是,我在 trace.axd 页面上的任何地方都找不到这些字符串。那么如何让他们到达那里呢?

其次,我想问一下,我应该如何关闭没有问题的跟踪(意味着那些我不亲自从某种方法发送的)请求,因为它们只是淹没了我的跟踪并在有人注意到它们之前更快地删除了那些偶尔出现的错误报告.

提前致谢。

【问题讨论】:

    标签: asp.net asp.net-mvc debugging logging


    【解决方案1】:

    我猜您的问题是您使用的是System.Diagnostics.Trace 类而不是ASP.NET 的跟踪机制,并且它没有设置为将跟踪消息路由到trace.axd。尝试使用Controller.HttpContext.Trace 对象进行跟踪。

    或者,尝试通过将以下 sn-p 添加到 web.config 来将 System.Diagnostics.Trace 路由到 ASP.NET 跟踪:

    <system.diagnostics>
      <trace>
        <listeners>
           <add name="WebPageTraceListener" 
                type="System.Web.WebPageTraceListener, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </listeners>
      </trace>
    </system.diagnostics>
    

    【讨论】:

    • 很好,它有效,谢谢。我只想问,你也知道我第二个问题的解决方法吗?
    • @Trimack:看看 TraceSwitch 类。它可能会帮助您通过配置选项关闭不同类别的跟踪消息:msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2011-01-05
    • 1970-01-01
    • 2017-06-29
    相关资源
    最近更新 更多