【问题标题】:How do you trace internal server errors coming from within MVC 4?您如何跟踪来自 MVC 4 的内部服务器错误?
【发布时间】:2012-07-17 11:47:41
【问题描述】:

由于 ASP.NET MVC 4 和 WebAPI 的持续问题,请参阅链接:

MVC 4 Web API - CreateResponse(status, object) causes HTTP 500

我需要检测内部 Web API 管道并查看发生了什么。

我该怎么做?

谢谢

卢克

**更新**

我现在实现了一个 ITraceWriter,我现在可以看到 TraceRecord 上有一个 Exception 属性,我可以转储甚至中断它,也许。

谢谢,我想回答了这个问题。

更多信息在这里:

http://www.asp.net/web-api/overview/testing-and-debugging/tracing-in-aspnet-web-api

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api


    【解决方案1】:

    您可以为整个堆栈启用所有级别的跟踪(从基本的“信息”跟踪开始)。

    如果您使用流行的库之一(即 nLog),您可以根据需要轻松将其全部写入文件或事件日志。

    只需将默认的 ITraceWriter 替换为您的自定义类:

    GlobalConfiguration.Configuration.Services.Replace(typeof(ITraceWriter), new NLogger());
    

    您会看到各种内部跟踪消息填满日志。

    我在这里写了一篇博客 http://www.strathweb.com/2012/06/using-nlog-to-provide-custom-tracing-for-your-asp-net-web-api/

    【讨论】:

    • 我已经完成了这一切,感谢 Filip,但不幸的是它忽略了写一个像样的异常。我会更新问题。
    • 在 TraceRecord 上找到了 Exception 属性 - 看来不要在没有 ITraceWriter 的情况下离开家。
    【解决方案2】:

    您是否尝试过设置:

     GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
    

    This 是关于 Web API 中的错误处理和跟踪的好帖子。

    【讨论】:

    • 是的,这是打开的,包含在条件 (DEBUG) 中,但这个特定错误不会发出标准的 ASP.NET barf 页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2020-08-23
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多