如果在我的 MVC 应用程序中发生 500 异常错误,我想发送一封电子邮件以提醒网站所有者。
我在 global.asax.cs 文件中发现了 Application_Application_Error 方法,该方法在应用程序出现错误时触发。
我想知道的是,用这种方法发送邮件是否安全,如果发生意外错误会怎样?应用程序最终会陷入无限循环吗?杀死我的网络服务器?
以前有没有人做过类似的事情,有没有更好的方法?
如果在我的 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());
}
如果您在过滤器中吞下异常,则它不会冒泡并在您的应用程序中创建任何循环。另外,您可以对错误处理进行更精细的控制。