Отправить письмо на 500 Ошибка Asp.net MVC - PullRequest
0 голосов
/ 10 мая 2018

Если в приложении MVC возникает ошибка исключения 500, я хочу отправить электронное письмо, чтобы предупредить владельцев сайта.

Я обнаружил метод Application_Application_Error в файле global.asax.cs, который запускается при возникновении ошибки приложения.

То, что я хочу знать, это безопасно ли отправлять электронную почту этим методом, что произойдет, если произойдет непредвиденная ошибка? Будет ли приложение в бесконечном цикле? убить мой веб-сервер?

Кто-нибудь делал что-то подобное раньше, есть ли лучший способ?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Обычно для ведения журнала используется какая-то библиотека: Nlog , log4net , Serilog или другие. И большинство таких библиотек имеют возможность выполнять почтовые уведомления. Вы можете использовать эти знания & mdash; Выполняйте простую и последовательную регистрацию в своем приложении и достигайте целей с правильной конфигурацией для выбранного вами регистратора.

Это может быть сделано с использованием:

0 голосов
/ 10 мая 2018

Если вы используете 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());       
}

Если вы проглотите исключение в фильтре, оно не всплывет и не создаст никаких циклов в вашем приложении. Кроме того, вы можете лучше контролировать обработку ошибок.

...