目前我收到来自ELMAH的错误电子邮件,类似于以下屏幕截图,这一切都很好。
但缺少的一件事是一个完整的URL类似于你从Request.Url.ToString()
(即包括域,路径和查询)得到的东西。我想知道是否有一种简单的方法来包含在电子邮件标题或正文开头的某处导致错误的完整请求网址。
目前,我要手动拼凑来自不同请求标头(域,路径和查询)的URL以了解事件站点。
我知道elmah提供了不同的global.asax钩子,如果可以在任何这些事件中完成某些事情,我想知道从哪里可以获取HttpContext
的实例或从中获取更多细节并添加到电子邮件正文。但是如果有任何现有的内置配置选项来包含这些信息,那我认为这是一个更好的选择。
其实这很简单。是我忽略了显而易见的事实。只需在Global.asax
中添加此处理程序即可完成。
protected void ErrorMail_Mailing(object sender, Elmah.ErrorMailEventArgs e)
{
e.Mail.Body = Context.Request.Url.ToString()+ "\r\n" + e.Mail.Body;
}