ASP.NET 5:捕获和记录所有未处理的异常的建议方法是什么?

时间:2016-01-06 05:36:03

标签: asp.net asp.net-core

我正在构建一个api应用程序。 在旧的ASP.NET中,有Application_Error()来捕获所有未处理的异常

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

ASP.NET 5应该使用什么?

1 个答案:

答案 0 :(得分:5)

解决方案是添加自定义过滤器。这是如何做到的:

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

现在,自定义过滤器应该来自IExceptionFilter:

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

    }
}

不幸的是,它在Startup.Configuration()

期间没有捕获异常