Файл Global.asax не выдает сообщение об исключении

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

Вот мой код

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

' Get current exception 
    Dim err As System.Exception = Server.GetLastError

    Dim ErrorDetails As String = err.Exception.Message

    Dim ErrorURL As String = Request.Url.ToString()

    ' Send notification e-mail
    Dim Email As MailMessage = _
        New MailMessage("email@email.co.uk", email@email.co.uk")
    Email.IsBodyHtml = False
    Email.Subject = "WEB SITE ERROR"
    Email.Body = ErrorDetails & vbcrlf & vbcrlf & ErrorURL
    Email.Priority = MailPriority.High
    Dim sc As SmtpClient = New SmtpClient("localhost")
    sc.Send(Email)

End Sub

Любая помощь приветствуется

Спасибо

Джейми

2 ответа

Решение

Использование err.ToString() - это дает вам полный след и внутренние исключения.

Если вы действительно хотите только сообщение об ошибке внутреннего исключения, используйте err.InnerException.Message

protected void Application_Error(object sender, EventArgs e)

{

MailMessage msg = new MailMessage();
HttpContext ctx = HttpContext.Current;

msg.To.Add(new MailAddress("me@me.com"));
msg.From = new MailAddress("from@me.com");
msg.Subject = "My app had an issue...";
msg.Priority = MailPriority.High;

StringBuilder sb = new StringBuilder();
sb.Append(ctx.Request.Url.ToString() + System.Environment.NewLine);
sb.Append("Source:" + System.Environment.NewLine + ctx.Server.GetLastError().Source.ToString());
sb.Append("Message:" + System.Environment.NewLine + ctx.Server.GetLastError().Message.ToString());
sb.Append("Stack Trace:" + System.Environment.NewLine + ctx.Server.GetLastError().StackTrace.ToString());
msg.Body = sb.ToString();

//CONFIGURE SMTP OBJECT
SmtpClient smtp = new SmtpClient("myhost");

//SEND EMAIL
smtp.Send(msg);

//REDIRECT USER TO ERROR PAGE
Server.Transfer("~/ErrorPage.aspx");
}
Другие вопросы по тегам