【发布时间】:2013-04-20 15:32:30
【问题描述】:
我目前正在使用带有 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);
}
只是想确保这是正确的方式!
感谢您的时间
【问题讨论】:
标签: asp.net-mvc elmah