我让the Rescue attribute工作了。当存在未处理的异常时,它会正确地提供DefaultError视图。
但是,这些例外不会被记录或通过电子邮件发送。 This SO question由Atif Aziz回答并且它看起来非常可靠,但它适用于Rescue替换的内置HandleErrorAttribute,对吗?如何使用Rescue进行操作?我想确保如果出现未处理的异常,用户将获得使用Rescue属性指定的视图的服务,但仍然可以正确记录该异常,并且可以使用elmah.axd查看。
更新
var currentContext = HttpContext.Current;
Elmah.ErrorSignal.FromContext(currentContext).Raise(ViewData.Model.Exception, currentContext);
我将上述内容添加到我的视图中,现在可以正确记录和发送电子邮件错误。但是,在视图中执行此操作似乎不是正确的事物。有没有人有更好的主意?
答案 0 :(得分:0)
您可以从ViewView中明确调用Elmah日志:
using Elmah;
var context = HttpContext.Current;
ErrorLog.GetDefault(context).Log(new Error(e, context));