OWIN / Katana的未处理异常全局处理程序?
OWIN / Katana的未处理异常全局处理程序?
在Katana(OWIN)实现中,如何正确实施全局异常捕获处理程序?
在作为Azure云服务(工作角色)运行的自托管OWIN/Katana实现中,我将以下代码放在中间件中:
throw new Exception("pooo");
然后,我将以下代码放在Startup类的Configuration方法中,并在事件处理程序中设置了断点:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledExceptionEventHandler;
以及在同一类中的事件处理程序(在第一行设置了断点):
private static void CurrentDomain_UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e) { var exception = (Exception)e.ExceptionObject; Trace.WriteLine(exception.Message); Trace.WriteLine(exception.StackTrace); Trace.WriteLine(exception.InnerException.Message); }
当代码运行时,断点没有被触发。但是,Visual Studio输出窗口确实包含以下内容:
A first chance exception of type 'System.Exception' occurred in redacted.dll A first chance exception of type 'System.Exception' occurred in mscorlib.dll
我还尝试将事件绑定和处理程序移动到Worker Role OnStart方法,但断点仍未被触发。
我完全没有使用WebAPI,但是查看了一些相关帖子,但没有找到明确的解决方法,所以我在这里求助。
运行在.NET Framework 4.5.2和VS 2013上。
感谢任何想法。