ASP.NET - 发生异常时发送电子邮件

时间:2012-12-12 17:47:47

标签: c# asp.net exception-handling

嗨,谢谢你抽出时间回答我的问题。

我有一个asp.net webforms应用程序,我是为中型公司的内部目的而构建的。

首先让我说我处理在CRUD操作期间可能发生的所有异常并向用户显示相应的消息。但是,我是否有办法以集中的方式首先将innerException消息与堆栈跟踪一起发送给自己,然后将消息显示给用户?

换句话说,我不想创建像EmailException()这样的方法,并在每个catch(Exception ex)块中调用它,但是我想在首次捕获所有异常的地方调用它。

如果我的问题不够明确,请告诉我。

再次感谢!

2 个答案:

答案 0 :(得分:3)

Elmah非常适合:

  
      
  • 记录几乎所有未处理的例外情况。
  •   
  • 远程查看已重新编码的例外日志的网页。
  •   
  • 用于远程查看任何一个已记录异常的完整详细信息的网页,包括彩色堆栈跟踪。   *在许多情况下,即使关闭了customErrors模式,您也可以查看ASP.NET为特定异常生成的原始黄色死亡屏幕。
  •   
  • 发生时每个错误的电子邮件通知。
  •   
  • 日志中最近15个错误的RSS提要。
  •   

这里是config example

答案 1 :(得分:3)

Elmah很棒,但Log4Net也会为您提供该功能以及其他日志记录功能。您只需要在log4net配置中添加SmtpAppender定义,以及您想要/需要/期望的任何其他追加器。

简单易行。捕获任何未处理异常的最简单方法是向global.asax添加Application_Error()方法。它由Asp.Net运行时调用并将捕获

  

处理请求时所有未处理的ASP.NET错误 - 换句话说,   所有未通过Try / Catch块或页面级别捕获的错误   错误处理程序。

应该注意的是,Elmah,log4net和global.asax Application_Error()方法都快乐地共存。 Elmah就坐在那里, sotto voce ,并监听,记录经过的任何异常。