Sto tentando di eseguire un'applicazione ASP.NET che registra le eccezioni nel database. Sto usando Application_Error per catturare l'eccezione.Application_Error() non attivo
Prima di aggiungere la stringa di connessione, solo per testare il mio codice (classe Logger e il codice in Global.asax), ho provato a registrare l'errore nel visualizzatore eventi di Windows. Funziona come previsto.
Ma dopo aver aggiunto la stringa di connessione al file Web.config e aggiunto il codice ADO.NET, ho provato a eseguire l'applicazione. Ma ottengo lo schermo giallo della morte: D
Non so cosa c'è di sbagliato nel mio codice. Ho solo modificato l'elemento connectionStrings nel file Web.config e aggiunto il codice ADO.NET.
Ecco il codice.
Questo è il codice del modulo Web nell'evento Page_Load. Il file Countries.xml non è presente e si prevede che genererà un errore.
DataSet dataset = new DataSet();
dataset.ReadXml(Server.MapPath("~/Countries.xml"));
GridView1.DataSource = dataset;
GridView1.DataBind();
Application_Error
Exception exception = Server.GetLastError();
if (exception != null)
{
Logger.Log(exception);
Server.ClearError();
Server.Transfer("~/Errors.aspx");
}
Web.config
<configuration>
<connectionStrings>
<add name="DBCS" connectionString="Data Source=.;database=Sample;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
</system.web>
</configuration>
Ho provato debug inserendo un punto di interruzione alla Application_Error in Global.asax, ma il controllo non raggiunge tale punto. L'eccezione viene attivata dall'evento Page_Load. Non ci sono errori di compilazione nel codice della classe Logger. Inoltre, non voglio usare la rotta CustomErrors per risolvere questo problema.
Grazie in anticipo.
Questo è il link al codice: https://drive.google.com/folderview?id=0B5K22Q9r50wXU0VOQmJKVHBoaDg&usp=sharing
Si sta attuando una pagina di errore personalizzata troppo? Hai verificato di non avere altre istruzioni try-catch che abbiano permesso di rilevare l'eccezione prima del tuo codice Application_Error? –
Ciao @Ephraim, sì sto implementando una pagina di errore personalizzata: Errors.aspx. Non c'è altro blocco catch try nel mio codice. L'eccezione non viene gestita e vedo lo schermo giallo della morte. – Nachiket