Rau*_*jar 1 elmah asp.net-web-api elmah.mvc
我已经设置了elmah来通过包含一个webapi事件的httpfilter来拾取webapi异常,如ELMAH和MVC4中的API控制器中所述,不记录错误。
它可以正常工作,我可以看到错误进入了elmah db,问题是errorMail模块没有尽管它可以正常执行操作,但似乎没有问题,但
我似乎没有能力将其删除,因此我已经删除了所有错误过滤器,这也不是为什么不发送电子邮件的原因。
我还尝试通过在global.asax中添加一个无效的ErrorMail_Filtering(object sender,ExceptionFilterEventArgs args)方法来为电子邮件设置特殊的过滤器,但是对于webapi异常,它甚至从未达到(对于非webapi异常,它可以正常工作)
其他人遇到了这个问题,知道如何解决吗?我讨厌不得不更换Elmah电子邮件过滤器...
我之所以用Elmah.ErrorSignal.FromCurrentContext().Raise(...)代替,是Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(...)因为所有配置的错误记录器都将有机会使用该异常。因此,例外情况将出现在Elmah.axd中,我将收到一封电子邮件。如果我使用Log它,只会转到默认的错误记录器,并且不会收到电子邮件。
Web API 2.1改进了全局错误处理。如果可以使用v2.1,我建议您采用这种方式。
public class UnhandledExceptionLogger : ExceptionLogger
{
public override void Log(ExceptionLoggerContext context)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(context.Exception);
}
}
Run Code Online (Sandbox Code Playgroud)
要使用它,请使用HttpConfiguration注册它,如下所示:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// ...
config.Services.Add(typeof(IExceptionLogger), new UnhandledExceptionLogger());
// Web API routes
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
549 次 |
| 最近记录: |