ASP.NET MVC 4 Web Api: 诊断功能

5

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

我不想跟踪我的Web Api,而是记录框架正在执行的操作。 如果我使用消息处理程序跟踪/记录Web Api,则无法获取有关在我的实现之前发生错误的信息。

2个回答

7

4
我建议您做两件事情: 1) 为了获取有关抛出异常的详细信息,建议将错误策略设置为“始终”。这样可以从您的代码中返回更详细的异常消息。
  GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

我认为这只在RC版本中有效。

2) 其次,我建议您连接一个消息处理程序,以便提取请求/响应信息。当新的请求进入并且在最终响应返回之前,消息处理程序将运行。网上有大量此类示例。WebAPIContrib在其GitHub repo中提供了一个示例

3) 如果您想监视其他服务器事件,则可以考虑使用asp.net健康监控,当然只要您是在asp.net中托管。它会允许您进行各种审计并监视服务器错误。


嗨,我不想使用消息处理程序,因为它们在这种情况下无法工作。我需要记录框架正在执行的操作。例如,如果服务器启动时发生错误,则不会调用消息处理程序。 - user437899
服务器错误不会仅限于 Web API。你看过健康监控吗?我可以在我的答案中添加一些链接。 - cecilphillip
4
在生产环境中,您绝不能使用IncludeErrorDetailPolicy.Always,因为这会导致信息泄露漏洞:异常包含的详细信息可能被用于找到入侵您系统的方法(请参见https://www.owasp.org/index.php/Information_Leak_(information_disclosure))。 - Isantipov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接