【发布时间】:2015-12-15 17:09:33
【问题描述】:
我正在设置一个在 Azure Web 应用程序环境中运行的 ASP.NET WebApi 应用程序。我的大多数控制器和端点工作正常,但大约有 10 条路由返回 500 个错误“发生错误”。这不是随机的。每次都是相同的路由,我找不到任何模式(不是所有的 HTTP 方法,来自不同的控制器,同一控制器中的其他路由工作正常,等等)
当这些错误发生时,据我所知,不会触发任何错误日志记录。 (如果这很重要,我正在使用 Raygun.IO)。我尝试在 Application_Error 函数中添加一个带有以下行的 global.asax 文件:
Exception ex = Server.GetLastError();
new RaygunClient().SendInBackground(null, ex);
但据我所知,发生这 500 个错误时不会触发它。我在 Azure 服务器日志中发现的唯一内容是 Failed Requests 日志中的以下警告:
但是,我在该点之前的跟踪中没有看到任何错误。我也没有在我的任何 Azure 日志中发现与这些失败路由相关的任何其他错误。
它是使用 OWIN 启动类的 .NET 4.6(尝试了 4.5.1 和 4.5.2 没有区别)WebApi。还尝试更新我所有的包都没有效果。
【问题讨论】:
-
不要挂钩 global.asax Application_Error,而是尝试挂钩 Web API 2.0 ExceptionHandler 或 ExceptionLogger 接口。不要为 ExceptionFilterAttribute 烦恼。本文解释了所有三个:ruhul.wordpress.com/2014/09/05/…