Ho un servizio WCF che ha il seguente codice nel Global.asax:AppDomain.CurrentDomain.UnhandledException non viene chiamato
protected void Application_Start(object sender, EventArgs e)
{
// Make sure that any exceptions that we don't handle at least get logged.
AppDomain.CurrentDomain.UnhandledException += LogUnhandledException;
}
private void LogUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Log.Error.LogException("UnhandledException", e.ExceptionObject as Exception);
}
L'idea è di almeno registrare tutte le eccezioni che sono unhanded.
Ma non sembra essere mai chiamato. Ho provato a fare Divide by Zero in una delle mie operazioni di servizio e interrompe appena il servizio dopo che ha raggiunto l'eccezione.
int zero = 0;
int result = 100/zero;
Il metodo LogUnhandledException non viene mai chiamato.
Ho provato questo in IIS e in esecuzione nel debugger.
Come posso far funzionare questo evento per un servizio WCF?
Mi chiedo se ha qualcosa a che fare con IIS o il modo in cui è ospitato il servizio WCF. Come [qui] (http://mlichtenberg.wordpress.com/2011/09/19/catching-unhandled-exceptions-in-asp-net/), i ragazzi dicono: * In sintesi, eccezioni non gestite in un ASP.NET l'applicazione può essere catturata con un gestore di eventi Application_Error nel global.asax oppure creando un HttpModule per catturare l'evento AppDomain.UnhandledException. * – oleksii