2012-07-17 36 views
2

由于与ASP.NET MVC 4和的WebAPI持续的问题,请联系:如何追踪MVC 4内部的服务器错误?

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

回答

4

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

如果您使用其中一种流行的库(即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/

+0

我已经完成了所有这一切,谢谢菲利普,但不幸的是,它忽略了写一个体面的例外。我会更新这个问题。 – 2012-07-17 13:26:44

+2

在TraceRecord上找到异常属性 - 不要在没有ITraceWriter的情况下回家。 – 2012-07-17 13:38:16

+0

哈哈这是一个很好的座右铭 – 2012-07-17 13:49:20

0

你有没有尝试设置:

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 

This是错误处理好岗位和网页API跟踪。

+0

是的,这是在一个条件(DEBUG)包装,但这个特定的错误不会发出标准的ASP.NET barf页面。 – 2012-07-17 13:07:28