Web API中的全局异常处理程序未被调用

时间:2015-06-10 14:32:49

标签: c# asp.net asp.net-web-api exception-handling elmah

类似的问题被问到here,但该问题特别涉及404错误。

我已将Elmah添加为here描述的全局处理程序。如果我在代码中引发错误Elmah捕获它就好了,但是如果我通过控制器从EF获得SQL错误,那么它没有被捕获 - 在json中返回异常消息作为500错误。

根据这个article,有些情况下无法捕获异常,但我的情况似乎不是其中之一。

任何人都可以解释为什么WebAPI中的全局错误处理程序不会捕获SQL异常吗?

这是我的处理程序:

public class UnhandledExceptionFilter : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext context)
    {
        Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(context.Exception));
    }
}

以及它在WebApiConfig.cs中注册的位置

public static void Register(HttpConfiguration config)
{
    ----
    config.Filters.Add(new UnhandledExceptionFilter());
}

0 个答案:

没有答案