发送电子邮件至500 Error Asp.net MVC

时间:2018-05-10 11:45:07

标签: c# asp.net-mvc error-handling application-error

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

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

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

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

2 个答案:

答案 0 :(得分:3)

如果您使用的是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());       
}

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

答案 1 :(得分:0)

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

可以使用以下方法完成: