通常在我的Mvc项目中,我在Global.asax.cs中只有一个ErrorMail_Mailing方法,可以访问ErrorMailEventArgs。
但是在WebApi中,此方法不会触发,因此如何在Webapi中访问此信息?
我目前正在使用这种方法(工作正常)
public class ApiErrorHandler : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
DepResolver.ExceptionHelper().LogToElmah(context.Exception);
base.OnException(context);
}
}
答案 0 :(得分:1)
默认情况下,ELMAH不会触发Web API。您需要自己捕获错误并将其记录到ELMAH甚至更好,使用Elmah.Contrib.WebApi NuGet包:http://www.nuget.org/packages/Elmah.Contrib.WebApi/。安装该软件包后,只需将以下代码添加到Application_Start:
GlobalConfiguration.Configuration.Filters.Add(new ElmahHandleErrorApiAttribute());
这应该触发你的ErrorMail_Mailing方法被调用。