2016-01-06 11 views
5

Ich baue eine API-App. Im alten ASP.NET gab es Application_Error()ASP.NET 5: Was ist der empfohlene Ansatz zum Abfangen und Protokollieren aller nicht behandelten Ausnahmen?

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

alle nicht behandelten Ausnahmen zu fangen Was in ASP.NET 5 verwendet werden soll?

+0

Es gibt eine schöne Erklärung dazu auf SO. Verwenden Sie ILoggerProvider und ILogger aus dem Namespace Microsoft.Framework.Logging. Die Details finden Sie hier. http://stackoverflow.com/questions/28385889/global-exception-handling-in-asp-net-5. Die GitHub haben auch eine Probe für sie. https://github.com/aspnet/Diagnostics/tree/dev/samples/ExceptionHandlerSample –

+0

die Antwort gibt es ein wenig veraltet –

Antwort

5

Die Lösung besteht darin, einen benutzerdefinierten Filter hinzuzufügen. Dies ist, wie es getan werden könnte:

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

Nun ist die benutzerdefinierten Filter aus IExceptionFilter ableiten sollte:

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

    } 
} 

Leider ist es nicht Ausnahmen während Startup.Configuration verfängt()

+0

Haben Sie in der Lage, eine bessere Möglichkeit, dies zu tun, wie "Application_Error" auf asp. Netz 4 –

Verwandte Themen