Traccia a livello di pagina Asp.Net, debug, gestione degli errori (esempio)

Sommario:

Anonim

In qualsiasi applicazione, è inevitabile che si verifichino errori durante il processo di sviluppo. È importante essere in grado di scoprire gli errori in una fase iniziale.

In Visual Studio, è possibile farlo per le applicazioni ASP.Net. Visual Studio viene utilizzato per il debug e dispone di tecniche di gestione degli errori per ASP.Net.

In questo tutorial imparerai-

  • Che cos'è il debug in ASP.NET?
  • Che cos'è la traccia in ASP.NET?
  • Traccia a livello di pagina
  • Gestione degli errori: visualizzazione di una pagina di errore personalizzata
  • Eccezione non gestita ASP.NET
  • Registrazione degli errori di ASP.NET

Che cos'è il debug in ASP.NET?

Il debug è il processo di aggiunta di punti di interruzione a un'applicazione. Questi punti di interruzione vengono utilizzati per sospendere l'esecuzione di un programma in esecuzione. Ciò consente allo sviluppatore di capire cosa sta succedendo in un programma in un determinato momento.

Facciamo un esempio di programma. Il programma mostra all'utente una stringa "Stiamo eseguendo il debug". Supponiamo che quando eseguiamo l'applicazione, per qualche motivo, la stringa non venga visualizzata. Per identificare il problema dobbiamo aggiungere un punto di interruzione. Possiamo aggiungere un punto di interruzione alla riga di codice che visualizza la stringa. Questo punto di interruzione sospenderà l'esecuzione del programma. A questo punto, il programmatore può vedere cosa sta andando storto. Il programmatore rettifica il programma di conseguenza.

Nell'esempio, useremo la nostra "DemoApplication" creata nei capitoli precedenti. Nell'esempio seguente, vedremo

  • Come fare in modo che l'applicazione demo visualizzi una stringa.
  • Come aggiungere punti di interruzione a un'applicazione.
  • Come eseguire il debug dell'applicazione utilizzando questo punto di interruzione.

Passaggio 1) Per prima cosa assicurati di avere la nostra applicazione web aperta in Visual Studio. Assicurati che DemoApplication sia aperta in Visual Studio.

Passaggio 2) Ora apri il file Demo.aspx.cs e aggiungi la riga di codice sottostante.

  • Stiamo solo aggiungendo la riga di codice Response.Write per visualizzare una stringa.
  • Quindi, quando l'applicazione viene eseguita, dovrebbe visualizzare la stringa "Stiamo eseguendo il debug" nel browser web.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("We are debugging");}}}

Passaggio 3) Ora aggiungiamo un punto di interruzione. Un punto di interruzione è un punto in Visual Studio in cui si desidera interrompere l'esecuzione del programma.

  1. Per aggiungere un punto di interruzione, è necessario fare clic sulla colonna in cui si desidera inserire il punto di interruzione. Quindi nel nostro caso, vogliamo che il nostro programma si fermi alla riga di codice "Response.Write". Non è necessario aggiungere alcun comando per aggiungere un punto di interruzione. Devi solo fare clic sulla riga in cui desideri aggiungere un punto di interruzione.
  2. Fatto ciò, noterai che il codice viene contrassegnato in rosso. Inoltre, viene visualizzata una bolla rossa nella colonna accanto alla riga del codice.

Nota: - È possibile aggiungere più punti di interruzione in un'applicazione

Passaggio 4) Ora è necessario eseguire l'applicazione utilizzando la modalità di debug. In Visual Studio, scegli l'opzione di menu Debug-> Avvia debug.

Produzione:-

Quando si eseguono correttamente tutti i passaggi, l'esecuzione del programma si interromperà. Visual Studio andrà al punto di interruzione e segnerà la riga di codice in giallo.

Ora, se il programmatore sente che il codice non è corretto, l'esecuzione può essere interrotta. Il codice può quindi essere modificato di conseguenza. Per continuare a procedere con il programma, il programmatore deve fare clic sul pulsante F5 sulla tastiera.

Che cos'è la traccia in ASP.NET?

La traccia dell'applicazione consente di vedere se una qualsiasi pagina richiesta genera un errore. Quando la traccia è abilitata, viene aggiunta all'applicazione una pagina aggiuntiva chiamata trace.axd. (Vedi immagine sotto). Questa pagina è allegata alla domanda. Questa pagina mostrerà tutte le richieste e il loro stato.

Diamo un'occhiata a come abilitare la traccia per un'applicazione.

Passaggio 1) Lavoriamo sulla nostra "DemoApplication". Apri il file web.config da Esplora soluzioni.

Passaggio 2) Aggiungere la riga di codice sottostante al file Web.config.

L'istruzione trace viene utilizzata per abilitare la traccia per l'applicazione.

  • Viene utilizzata l'istruzione "requestLimit" nell'istruzione trace. Specifica il numero di richieste di pagina che devono essere tracciate.
  • Nel nostro esempio, diamo un limite di 40. Diamo un limite perché un valore più alto degraderà le prestazioni dell'applicazione.

Eseguire la "demoapplication" in Visual Studio.

Produzione:-

Se ora navighi all'URL - http: // localhost: 53003 / trace.axd , vedrai le informazioni per ciascuna richiesta. Qui puoi vedere se si verificano errori in un'applicazione. I seguenti tipi di informazioni sono mostrati nella pagina sopra

  1. L'ora della richiesta della pagina web.
  2. Il nome della pagina web richiesta.
  3. Il codice di stato della richiesta web. (il codice di stato 200 indica che la richiesta è andata a buon fine).
  4. Visualizza i dettagli che consentono di visualizzare maggiori dettagli sulla richiesta web. Un esempio di ciò è mostrato di seguito. Un'importante informazione dettagliata fornita è l'informazione di intestazione. Queste informazioni mostrano quali sono le informazioni inviate nell'intestazione di ogni richiesta web.

Traccia a livello di pagina

Il tracciamento della pagina mostra tutte le informazioni generali su una pagina web quando viene elaborata. Questo è utile nel debug se una pagina non funziona per qualsiasi motivo.

Visual Studio fornirà informazioni dettagliate sui vari aspetti della pagina. Informazioni come l'ora per ogni metodo chiamato nella richiesta web. Ad esempio, se l'applicazione Web presenta un problema di prestazioni, queste informazioni possono aiutare a eseguire il debug del problema. Queste informazioni vengono visualizzate quando l'applicazione viene eseguita in Visual Studio.

Diamo un'occhiata a come abilitare la traccia per un'applicazione a livello di pagina.

Passaggio 1) Lavoriamo sulla nostra DemoApplication. Apri il file demo.aspx da Esplora soluzioni

Passaggio 2) Aggiungi la riga di codice sottostante per abilitare il tracciamento della pagina. Nella dichiarazione della pagina, aggiungi semplicemente la riga Trace = "true". Questa riga di codice consentirà la traccia a livello di pagina.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

Ora, quando viene visualizzata la pagina Web Demo.aspx, riceverai molte informazioni sulla pagina. In questa pagina vengono visualizzate informazioni come il tempo per ogni aspetto del ciclo di vita della pagina.

Gestione degli errori: visualizzazione di una pagina di errore personalizzata

In ASP.Net, è possibile visualizzare agli utenti pagine di errore personalizzate. Se un'applicazione contiene un qualsiasi tipo di errore, una pagina personalizzata visualizzerà questo errore all'utente.

Nel nostro esempio, aggiungeremo prima una pagina HTML. Questa pagina mostrerà una stringa all'utente "Stiamo esaminando il problema". Aggiungeremo quindi un codice di errore alla nostra pagina demo.aspx in modo che venga visualizzata la pagina di errore.

Seguiamo i passaggi indicati di seguito

Passaggio 1) Lavoriamo sulla nostra DemoApplication. Aggiungiamo una pagina HTML all'applicazione

  1. Fare clic con il pulsante destro del mouse su DemoApplication in Esplora soluzioni
  2. Scegli l'opzione di menu "Aggiungi" -> Pagina HTML

Passaggio 2) Nel passaggio successivo, dobbiamo fornire un nome alla nuova pagina HTML.

  1. Fornisci il nome come "ErrorPage".
  2. Fare clic sul pulsante "OK" per procedere.

Passaggio 3) Errorpage si aprirà automaticamente in Visual Studio. Se vai in Esplora soluzioni, vedrai il file aggiunto.

Aggiungere la riga di codice "Stiamo esaminando il problema" alla pagina HTML. Non è necessario chiudere il file HTML prima di apportare la modifica al file web.config.

We are looking into the problem

Passaggio 4) Ora è necessario apportare una modifica al file web.config. Questa modifica notificherà che ogni volta che si verifica un errore nell'applicazione, è necessario visualizzare la pagina di errore personalizzata.

Il tag "customErrors" consente di definire una pagina di errore personalizzata. La proprietà defaultRedirect è impostata sul nome della nostra pagina di errore personalizzata creata nel passaggio precedente.

Passaggio 5) Ora aggiungiamo del codice difettoso alla pagina demo.aspx.cs. Aprire questa pagina facendo doppio clic sul file in Esplora soluzioni

Aggiungere il codice riportato di seguito al file Demo.aspx.cs.

  • Queste righe di codice sono progettate per leggere le righe di un testo da un file.
  • Il file dovrebbe trovarsi nell'unità D con il nome "Example.txt".
  • Ma nella nostra situazione, questo file non esiste realmente. Quindi questo codice genererà un errore quando l'applicazione viene eseguita.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){String path = @"D:\Example.txt";string[] lines;lines = File.ReadAllLines(path);}}}

Ora esegui il codice in Visual Studio e dovresti ottenere l'output seguente.

Produzione:-

La pagina sopra mostra che è stato attivato un errore nell'applicazione. Di conseguenza, all'utente viene visualizzata la pagina Error.html.

Eccezione non gestita ASP.NET

Anche nel migliore degli scenari, possono esserci casi di errori che semplicemente non sono previsti.

Supponiamo che un utente acceda alla pagina sbagliata nell'applicazione. Questo è qualcosa che non può essere previsto. In questi casi, ASP.Net può reindirizzare l'utente a errorpage.html.

Vediamo un esempio su questo.

  • Useremo la nostra stessa "DemoApplication" che ha Errorpage.html.
  • E proveremo a visualizzare una pagina web che non esiste nella nostra applicazione.
  • In questo caso, dovremmo essere reindirizzati alla nostra pagina ErrorPage.html. Vediamo i passaggi per ottenere questo risultato.

Passaggio 1) Lavoriamo sulla nostra DemoApplication. Apri il file Global.asax.cs da Esplora soluzioni

NOTA : il file global.asax.cs viene utilizzato per aggiungere codice che sarà applicabile in tutte le pagine dell'applicazione.

Passaggio 2) Aggiungere la riga di codice sottostante a global.asax.cs. Queste righe verranno utilizzate per verificare la presenza di errori e visualizzare di conseguenza la pagina ErrorPage.html.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){‬ HttpException lastErrorWrapper = Server.GetLastError() as HttpException;if(lastErrorWrapper.GetHttpCode() == 404)Server.T ransfer("~/ErrorPage.html");}}}

Spiegazione del codice: -

  1. La prima riga è il gestore dell'evento Application_Error. Questo evento viene chiamato ogni volta che si verifica un errore in un'applicazione. Notare che il nome dell'evento deve essere "Application_Error". E i parametri dovrebbero essere come mostrato sopra.
  2. Successivamente, definiamo un oggetto del tipo di classe HttpException. Questo è un oggetto standard che conterrà tutti i dettagli dell'errore. Quindi utilizziamo il metodo Server.GetLastError per ottenere tutti i dettagli dell'ultimo errore che si è verificato nell'applicazione.
  3. Quindi controlliamo se il codice di errore dell'ultimo errore è 404. (Il codice di errore 404 è il codice standard restituito quando un utente accede a una pagina che non viene trovata). Quindi trasferiamo l'utente alla pagina ErrorPage.html se il codice di errore corrisponde.

Ora esegui il codice in Visual Studio e dovresti ottenere l'output seguente

Produzione:-

Sfoglia la pagina http: // localhost: 53003 / Demo1.aspx . Ricorda che Demo1.aspx non esiste nella nostra applicazione. Otterrai quindi l'output di seguito.

La pagina sopra mostra che è stato attivato un errore nell'applicazione. Di conseguenza, all'utente viene visualizzata la pagina Error.html.

Registrazione degli errori di ASP.NET

Registrando gli errori dell'applicazione, aiuta lo sviluppatore a eseguire il debug e risolvere l'errore in un secondo momento. ASP.Net ha la possibilità di registrare gli errori. Questa operazione viene eseguita nel file Global.asax.cs quando viene acquisito l'errore. Durante il processo di acquisizione, il messaggio di errore può essere scritto in un file di registro.

Vediamo un esempio su questo.

  • Useremo la nostra stessa DemoApplication che ha Errorpage.html.
  • E proveremo a visualizzare una pagina web che non esiste nella nostra applicazione.
  • In questo caso, dovremmo essere reindirizzati alla nostra pagina ErrorPage.html.
  • E allo stesso tempo, scriveremo il messaggio di errore in un file di registro. Vediamo i passaggi per ottenere questo risultato.

Passaggio 1) Lavoriamo sulla nostra DemoApplication. Apri il file Global.asax.cs da Esplora soluzioni

Passaggio 2) Aggiungere la riga di codice sottostante a global.asax.cs. Verificherà la presenza di errori e visualizzerà la pagina ErrorPage.html di conseguenza. Inoltre, allo stesso tempo, registreremo i dettagli dell'errore in un file chiamato "AllErrors.txt." Per il nostro esempio, scriveremo il codice per creare questo file sull'unità D.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){Exception exc = Server.GetLastError();String str ;str = exc.Message;String path = @"D:\AllErrors.txt";File.WriteAllTest(path,str);Server.trrasfer("~/ErrorPage.html");}}}

Spiegazione del codice: -

  1. La prima riga è ottenere l'errore stesso utilizzando il metodo "Server.GetLastError". Questo viene quindi assegnato alla variabile "exc".
  2. Quindi creiamo una variabile stringa vuota chiamata "str". Otteniamo il messaggio di errore effettivo utilizzando la proprietà "exc.Message". La proprietà exc.Message avrà il messaggio esatto per qualsiasi errore che si verifica durante l'esecuzione dell'applicazione. Questo viene quindi assegnato alla variabile stringa.
  3. Successivamente, definiamo il file chiamato "AllErrrors.txt." Qui è dove verranno inviati tutti i messaggi di errore. Scriviamo la stringa "str" ​​che contiene tutti i messaggi di errore in questo file.
  4. Infine, trasferiamo l'utente al file ErrorPage.html.

Produzione:-

Sfoglia la pagina http: // localhost: 53003 / Demo1.aspx . Ricorda che Demo1.aspx non esiste nella nostra applicazione. Otterrai quindi l'output di seguito.

Allo stesso tempo, se apri il file "AllErrors.txt" vedrai le informazioni seguenti.

Il messaggio di errore può quindi essere passato allo sviluppatore in un secondo momento per scopi di debug.

Sommario

  • ASP.Net ha la funzione per eseguire il debug e la gestione degli errori.
  • Il debug può essere ottenuto aggiungendo punti di interruzione al codice. Si esegue quindi l'opzione Inizia con debug in Visual Studio per eseguire il debug del codice.
  • La traccia è la funzione per fornire più informazioni durante l'esecuzione dell'applicazione. Questo può essere fatto a livello di applicazione o di pagina.
  • A livello di pagina, il codice Trace = true deve essere aggiunto alla direttiva della pagina.
  • A livello di applicazione, viene creata una pagina aggiuntiva chiamata Trace.axd per l'applicazione. Ciò fornisce tutte le informazioni di tracciamento necessarie.