繁体   English   中英

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

[英]Send email on 500 Error Asp.net MVC

如果我的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());       
}

如果您在过滤器中吞下了异常,则该异常不会冒泡并在您的应用程序中创建任何循环。 另外,您可以更好地控制错误处理。

通常使用某种库来执行日志记录: Nloglog4netSerilog或其他。 而且大多数此类库都具有执行电子邮件通知的功能。 您可以利用这些知识-在应用中执行简单且一致的日志记录,并通过为您选择的记录器进行适当配置来实现目标。

可以使用以下方法完成:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM