我正在构建一个api应用程序.在旧的ASP.NET中,有Application_Error()来捕获所有未处理的异常
protected void Application_Error() { var exception = Server.GetLastError(); _logger.FatalException("Fatal error.", exception); }
什么应该在ASP.NET 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()期间没有捕获异常.