我目前正在使用带有 vs2012 的 mvc4,我安装了 mvc.elmah nugget 并完成了。
我做了什么 ?
最初我没有编写任何代码,我的异常记录在 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);
}
只是想确保这是正确的方式!
谢谢你的时间