我目前在vs2012上使用mvc4,并且我安装了mvc.elmah块并完成了。关于在ASP.NET MVC中使用ELAMH的说明
我做了什么?
最初我没有写任何代码,我的例外记录在ELMAH中。
后,我决定使用MVC的HandleError来处理应用程序异常,并添加过滤器
filters.Add(new HandleErrorAttribute());
现在我调试的过滤器,看看我有2个过滤器之一ELMAH HandleErrorAttribute and MVC HandleErrorAttribute !
我看到这个出色的链路https://stackoverflow.com/a/5936867/1481690这谈论使用ErrorSignal来处理应用程序异常
但我没有使用ErrorSignal
但仍然我的例外被ELMAH捕获?
如果我使用
if (context.ExceptionHandled)
ErrorSignal.FromCurrentContext().Raise(context.Exception);
我的异常登录两次。
我的问题如下
- 我是否需要使用2个过滤器(ELMAH和MVC)?
- 如果ELMAH已经有HandleErrorAttribute和日志异常。我是否需要添加MVC HandleErrorAttribute?
什么现在做的是目前
添加了过滤器
filters.Add(new HandleErrorAttribute());
和压倒一切的(为了处理未来的Ajax错误)
public class HandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
}
难道这还不够或者什么好练习?因为它记录了两次,所以不会引发ErrorSignal。
我没有使用任何try.catch
作为使用下面的行,并希望我的例外处理。
base.OnException(context);
}
只是想确保我在正确的方式!
感谢您的时间