如何在ASP.NET WebAPI应用程序中触发Application_Error?我现在遇到的错误是当我们通过NInject解析控制器并且失败时它将不会进入Application_Error并且我们无法记录错误,因为我们正在进行Application_Error中的全局日志记录.
我们还有一个用于处理错误的全局过滤器,但只有在找到控制器时才触发,但由于我们失败了,我们实例化控制器,我们不会通过任何过滤器.
那么我如何捕获异常,为什么尝试创建处理响应的控制器呢?
解决方法
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; } }
您还需要将MyExceptionHandler类添加到Web API服务.
httpConfiguration.Services.Replace(typeof(IExceptionHandler),new MyExceptionHandler());
原文地址:https://www.jb51.cc/aspnet/247210.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。