2012-06-21 88 views
5

我正在寻找一种功能,以在ASP.NET MVC 4 Web Api中启用登录/跟踪功能。 在WCF中,您可以激活日志记录,WCF会写入它正在执行的操作。然后,我可以打开转储并搜索错误。ASP.NET MVC 4 Web Api:诊断功能

我不想跟踪我的web api,但记录了框架正在做的事情。 如果我使用消息处理程序跟踪/记录web api,如果在执行之前发生错误,则不会获得任何信息。

回答

4

我推荐两件事。

1)要详细了解抛出的异常,我会将错误策略设置为always。这应该从你的代码中返回更多的细节异常消息。

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 

我认为这只适用于RC虽然。

2)然后,我还建议连线一个消息处理程序,您可以使用额外的请求/响应信息。消息处理程序将在新请求进入时和最终响应返回之前运行。这里有很多这样的例子。 WebAPIContrib有一个在它的GitHub repo你可以为example

3)如果要监视其他服务器事件看一看,你可能要为你的ASP托管考虑使用asp.net health monitoring,只要。当然网络。它可以让你做各种审计和监视服务器错误。

+0

嗨,我不想使用消息处理程序,因为他们不会在这种情况下工作。我需要一个框架正在做的日志。例如,如果服务器启动时发生错误,则消息处理程序将不会被调用。 – user437899

+0

然后服务器错误不会特定于web api。你看过健康监测吗?我可以添加一些链接到我的答案 – cecilphillip

+4

你应该*永远不会*在生产环境中使用** IncludeErrorDetailPolicy.Always **这是一个信息Diclosure漏洞:异常包含细节,可用于找到一种方法来破解你的系统(请参阅https://www.owasp.org/index.php/Information_Leak_(information_disclosure)) – Isantipov