代码之家  ›  专栏  ›  技术社区  ›  Christopher

如何将MVCContrib的“救援”与Elmah结合起来?

  •  0
  • Christopher  · 技术社区  · 14 年前

    我得到了 the Rescue attribute 工作。当出现未处理的异常时,它会正确地为defaulterror视图提供服务。

    但是,这些异常不会被记录或通过电子邮件发送。 This SO question 是由阿蒂夫·阿齐兹回答的,它看起来很可靠,但它适用于内置的handleerrorattribute,哪一个是rescue替代的,对吧?我怎样才能让它和救援一起工作?我想确保,如果出现未处理的异常,用户将获得使用rescue属性指定的视图,但异常仍然正确记录,并且可以使用elmah.axd查看。

    更新:

    var currentContext = HttpContext.Current;
    Elmah.ErrorSignal.FromContext(currentContext).Raise(ViewData.Model.Exception, currentContext);
    

    我把上面的内容添加到我的视图中,现在它可以正确地记录和发送错误邮件了。然而,在视图中这样做并不是 正确的 事情。有人有更好的主意吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Shay Erlichmen    14 年前

    您可以在查看页面中显式调用elmah日志:

    using Elmah;
    
    var context = HttpContext.Current;
    ErrorLog.GetDefault(context).Log(new Error(e, context));