Intercettare gli errori in pagine ASP.NET con il global.asax

di Daniele Bochicchio, in ASP.NET, global.asax, VB.NET,

ASP.NET mette a disposizione degli sviluppatori il global.asax, un po' la controparte del global.asa per ASP.
Il global.asax, tuttavia, mette a disposizione nuovi eventi, alcuni davvero molto utili come quello presentato nell'esempio di oggi.
Questo evento, Application_Error, viene generato ogni qual volta una pagina ASP.NET (ASPX) genera un'eccezione non gestita.
Questo semplice script non fa altro che mandare un'e-mail di avviso al gestore del sito con la descrizione estesa dell'errore ed altre informazioni utili per la risoluzione dello stesso.
E' ovviamente possibile modificare questo script perchè, ad esempio, registri l'errore su un database o in un file di testo, piuttosto che nell'events log del server.

<SCRIPT LANGUAGE="VB" RUNAT="SERVER">
Public Sub Application_Error (Sender as Object, E as EventArgs)
  Dim Message as String
  Message = "URL: " & Request.URL.ToString()
  Message += VbCrLf & "Errore: " & VbCrLf & Server.GetLastError.ToString()
  Message += VbCrLf & "Referer: " & VbCrLf & Request.UrlReferrer.ToString()
  Message += VbCrLf & "Browser: " & Request.UserAgent.ToString()
  Message += VbCrLf & "IP: " & Request.UserHostAddress.ToString()

  Dim mail As System.Web.Mail.MailMessage = New System.Web.Mail.MailMessage()
  mail.From = "webmaster@sito.ext"
  mail.To = "webmaster@sito.ext"
  mail.Subject = "Errore 500-100 ASPX"
  mail.Body = Message
  System.Web.Mail.SmtpMail.Send(mail)

End Sub
</SCRIPT>

Per maggiori informazioni sull'invio di e-mail con ASP.NET si veda
https://www.aspitalia.com/articoli/aspplus/mail.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi