我正在设置一个运行在Azure web应用程序环境上的ASP.NET WebApi应用程序。我的大多数控制器和端点工作正常,但是大约有10条路由返回500个错误“发生了错误”。这不是随机的。每次都是相同的路由,我找不到任何模式(不是所有的HTTP方法,来自不同的控制器,在相同控制器中的其他路由可以正常工作,等等)
当这些错误发生时,根据我在应用程序中的判断,不会触发错误日志记录。(如果这重要的话,我正在使用Raygun.IO )。我尝试在global.asax函数中添加一个带有以下行的Application_Error文件:
Exception ex = Server.GetLastError();
new RaygunClient().SendInBackground(null, ex);但据我所见,当这500个错误发生时,它不会被触发。我在Azure服务器日志中唯一发现的是失败请求日志中的以下警告:

但是,在此之前,我没有看到跟踪中有任何错误。我也没有在Azure日志中发现与这些失败路径相关的任何其他错误。
它是使用OWIN启动类的.NET 4.6 (尝试了4.5.1和4.5.2,没有区别)。也试图更新我的所有包,但没有效果。
发布于 2015-12-15 20:37:28
我搞清楚了到底发生了什么。确实发生了一些错误(主要是与SQL相关的),但是我们在这些函数中配置函数和错误日志记录的方式,实际的错误被吞没和丢失,覆盖了Raygun的错误日志行为。我翻开了尝试/捕捉块,我们用来捕获错误和日志,真正的错误最终出现在雷炮仪表板上。
发布于 2015-12-15 17:54:18
检查一下,确保你没有冲突的路线。当一个URI匹配两个或多个控制器操作,因此Web不能选择一个时,您将得到500个错误。
发布于 2015-12-15 19:43:40
如果您有一个一致的复制,那么您可以使用远程调试附加到您的web应用程序并调试它(https://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-troubleshoot-visual-studio/)。如果您可以通过浏览器复制它,还可以关闭自定义错误页,以便它通过浏览器显示堆栈跟踪(<customErrors mode="off"/>在<server.web>下)。
此外,您还可以使用web应用程序设置启用更好的诊断日志。关于如何这样做的信息,请参见“启用诊断日志”一节中的https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/。
此外,正如布伦特所说,URL冲突可能会导致一些令人讨厌的错误,而这些错误并不明显。
https://stackoverflow.com/questions/34295297
复制相似问题