【发布时间】:2014-02-15 10:07:08
【问题描述】:
我已经开发了一个基于 ASP.NET 4.5 和 Owin 的 SignalR 示例应用程序,并且我在 IIS 7.5 上托管了该应用程序。
一切正常,但如何在 Owin 中处理异常?
考虑以下代码:
[HubName("SampleHub")]
public class SampleHub : Hub
{
public SampleHub()
{
throw new InvalidOperationException("?!");
}
}
这个异常不会调用Application_Error(这是我的问题)。
我在哪里可以从 Owin 获取所有异常以进行日志记录和调试,类似于 Application_Error?
我对这样的事情不感兴趣:
app.UseErrorPage(new ErrorPageOptions()
{
ShowCookies = true,
ShowEnvironment = true,
ShowExceptionDetails = true,
ShowHeaders = true,
ShowQuery = true,
ShowSourceCode = true
});
这对于高级场景完全没用,比如 ASP.NET Web API 和 ASP.NET MVC。
使用 OnException 方法覆盖的动作过滤器要好得多。
【问题讨论】: