What is the proper way to implement a global Exception catcher-handler in a Katana (OWIN) implementation?
In a self-hosted OWIN/Katana implementation running as an Azure Cloud Service (worker role), I placed this code in a Middleware:
throw new Exception("pooo");
Then I placed this code in the Startup class Configuration method, setting a breakpoint in the event handler:
AppDomain.CurrentDomain.UnhandledException +=
CurrentDomain_UnhandledExceptionEventHandler;
and the event handler in the same class (with a breakpoint set on the first line):
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);
}
When the code runs the breakpoint is not hit. The Visual Studio Output window does include this however:
A first chance exception of type 'System.Exception' occurred in redacted.dll
A first chance exception of type 'System.Exception' occurred in mscorlib.dll
I also tried moving the wireup and handler to the Worker Role OnStart method but still the breakpoint is not hit.
I am not using WebAPI at all, but did look at posts on what is done there, but I found nothing clear, so here I am.
Running on .NET Framework 4.5.2, VS 2013.
All ideas appreciated.
Thanks.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…