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