在 MVC Asp.net 500 错误上发送电子邮件



如果我的MVC应用程序中发生500异常错误,我想发送电子邮件以提醒网站所有者。

我在 global.asax.cs 文件上发现了 Application_Application_Error 方法,当应用程序出现错误时会触发该方法。

我想知道的是,使用此方法发送电子邮件是否安全,如果发生意外错误会发生什么?应用程序最终会陷入无限循环吗?杀死我的网络服务器?

以前有没有人做过这样的事情,有没有更好的方法?

如果您使用的是 MVC,为什么不使用可以添加到整个应用程序中的操作筛选器?

public class CustomErrorHandler : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
try{
//Send email
}
catch{
//Swallow...
}
base.OnException(filterContext);
}
}

然后在你的FilterConfig.cs

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomErrorHandler());       
}

如果你吞下筛选器中的异常,那么它不会冒泡并在你的应用中创建任何循环。 此外,您可以对错误处理进行更精细的控制。

通常使用某种库来执行日志记录:Nlog,log4net,Serilog或其他。 大多数此类库都能够执行电子邮件通知。您可以使用这些知识 — 在您的应用程序中执行简单且一致的日志记录,并通过正确配置您选择的记录器来实现目标。

这可以通过使用:

  • 丝网日志的电子邮件接收器
  • nlog 的电子邮件目标
  • Smtp Appender for log4net

相关内容

  • 没有找到相关文章

最新更新