2016-01-06 13 views
5

Sto costruendo un'app api. Nel vecchio ASP.NET c'era Application_Error() per catturare tutte le eccezioni non gestiteASP.NET 5: Qual è l'approccio consigliato per catturare e registrare tutte le eccezioni non gestite?

protected void Application_Error() 
{ 
    var exception = Server.GetLastError(); 
    _logger.FatalException("Fatal error.", exception); 
} 

Quale dovrebbe essere utilizzato in ASP.NET 5?

+0

C'è una bella spiegazione di questo su SO. Utilizzare ILoggerProvider e ILogger dallo spazio dei nomi Microsoft.Framework.Logging. I dettagli possono essere trovati qui. http://stackoverflow.com/questions/28385889/global-exception-handling-in-asp-net-5. Il github ha anche un campione per lo stesso. https://github.com/aspnet/Diagnostics/tree/dev/samples/ExceptionHandlerSample –

+0

la risposta è un po 'obsoleta –

risposta

5

La soluzione è aggiungere un filtro personalizzato. Ecco come potrebbe essere fatto:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(options => options.Filters.Add(new MyExceptionFilter())); 
} 

Ora il filtro personalizzato dovrebbe derivare da IExceptionFilter:

public class MyExceptionFilter : ActionFilterAttribute, IExceptionFilter 
{ 
    public void OnException(ExceptionContext context) 
    { 

    } 
} 

Purtroppo, non cattura eccezioni durante Startup.Configuration()

+0

Sei stato in grado di trovare un modo migliore di farlo come "Application_Error" su asp. net 4 –

Problemi correlati