Включить полный URL в электронное письмо Elmah

#c# #asp.net-mvc #elmah #elmah.mvc

#c# #asp.net-mvc #elmah #elmah.mvc

Вопрос:

В настоящее время я получаю электронное письмо с ошибкой от ELMAH, похожее на следующий скриншот, и все это хорошо.

введите описание изображения здесь

Но чего не хватает, так это полного URL, похожего на то, что вы получаете от Request.Url.ToString() (т. Е. включая домен, путь и запрос). Я хотел бы знать, есть ли простой способ включить полный URL запроса, который вызвал ошибку где-нибудь в заголовке электронного письма или в начале текста.

В настоящее время мне приходится вручную собирать URL из разных заголовков запроса (домен, путь и запрос), чтобы узнать место инцидента.

Я знаю о различных перехватах global.asax, предоставляемых elmah, если что-то можно сделать в любом из этих событий, я хотел бы знать, откуда я могу получить экземпляр HttpContext или что-то еще, чтобы извлечь дополнительные сведения и добавить в текст письма. Но если есть какая-либо существующая встроенная опция конфигурации для включения этой информации, это было бы лучшим выбором, я думаю.

Ответ №1:

На самом деле это было просто. Это я игнорировал очевидное. Просто добавьте этот обработчик в Global.asax и готово.

 protected void ErrorMail_Mailing(object sender, Elmah.ErrorMailEventArgs e)
{
   e.Mail.Body = Context.Request.Url.ToString()  "rn"   e.Mail.Body;
}