Tom*_*son 7 asp.net asp.net-mvc-4 asp.net-web-api
如何Application_Error在ASP.NET WebAPI应用程序中获取触发器?我现在遇到的错误是当我们通过NInject解析控制器并且失败时它将无法进入Application_Error,我们无法记录错误,因为我们正在进行全局登录Application_Error.
我们还有一个用于处理错误的全局过滤器,但只有在找到控制器时才触发,但由于我们失败了,我们实例化控制器,我们不会通过任何过滤器.
那么我如何捕获Exception为什么尝试创建处理响应的控制器呢?
ASP.Net Web API 有自己的异常处理程序,您可以覆盖它并从那里重新抛出异常,以便在Application_Error
public class MyExceptionHandler : IExceptionHandler
{
public virtual Task HandleAsync(ExceptionHandlerContext context, CancellationToken cancellationToken)
{
ExceptionDispatchInfo.Capture(context.Exception).Throw();
return Task.CompletedTask;
}
}
Run Code Online (Sandbox Code Playgroud)
您还需要MyExceptionHandler向 Web API 服务添加类。
httpConfiguration.Services.Replace(typeof(IExceptionHandler), new MyExceptionHandler());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |