Livello di pagina ASP.NET Tracing, Debugging, Gestione degli errori
⚡ Riepilogo intelligente
Debug di ASP.NET, tracLa gestione degli errori in Visual Studio aiuta gli sviluppatori a individuare i problemi in anticipo e a seguire le richieste fino alla fine trace.axd, e reindirizzare gli utenti a pagine di errore personalizzate quando si verificano eccezioni non gestite durante il ciclo di vita di sviluppo e produzione.
In qualsiasi applicazione, è probabile che si verifichino errori durante il processo di sviluppo. È importante poter 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.
Cos'è il debug in ASP.NET?
Debug Il breakpoint è il processo di aggiunta di breakpoint a un'applicazione. Questi breakpoint vengono utilizzati per mettere in pausa l'esecuzione di un programma in corso. Ciò consente allo sviluppatore di comprendere cosa sta accadendo in un programma in un determinato momento.
Prendiamo come esempio un programma. Il programma visualizza all'utente la stringa "Stiamo eseguendo il debug". Supponiamo che, per qualche motivo, durante l'esecuzione dell'applicazione 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 metterà in pausa l'esecuzione del programma. A questo punto, il programmatore può vedere cosa potrebbe non funzionare e quindi correggere il programma di conseguenza.
In questo esempio, utilizzeremo 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.
Come eseguire il debug di un'applicazione in ASP.NET
Di seguito sono riportati i passaggi per creare un'applicazione demo, aggiungere punti di interruzione ed eseguire il debug in ASP.NET:
Passaggio 1) Aprire l'applicazione in Visual Studio.
Innanzitutto, assicuriamoci che la nostra applicazione web sia aperta in Visual Studio. Verifichiamo che DemoApplication sia aperta in Visual Studio.
Passaggio 2) Ora apri il file Demo.aspx.cs e aggiungi la riga di codice seguente.
- Stiamo semplicemente aggiungendo la riga di codice Response.Write per visualizzare una stringa.
- Pertanto, 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) Aggiungere un punto di interruzione all'applicazione.
Un punto di interruzione è un punto in Visual Studio in cui si desidera interrompere l'esecuzione del programma.
- Per aggiungere un punto di interruzione, è necessario fare clic sulla colonna in cui si desidera inserirlo. Nel nostro caso, vogliamo che il programma si fermi alla riga di codice "Response.Write". Non è necessario aggiungere alcun comando per inserire un punto di interruzione. Basta fare clic sulla riga in cui si desidera inserirlo.
- Fatto ciò, noterai che il codice viene contrassegnato in rosso. Inoltre, nella colonna accanto alla riga del codice appare una bolla rossa.
Nota: È possibile aggiungere più punti di interruzione in un'applicazione.
Passaggio 4) Eseguire l'applicazione in modalità debug.
Ora devi eseguire la tua applicazione usando la modalità Debug. In Visual Studio, scegli l'opzione di menu Debug->Start Debugging.
Produzione:-
Quando esegui tutti i passaggi correttamente, l'esecuzione del programma si interromperà. Visual Studio andrà al punto di interruzione e contrassegnerà la riga di codice in giallo.
Ora, se il programmatore ritiene che il codice non sia 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.
Cosa è Tracing in ASP.NET?
Applicazione tracING consente di vedere se le pagine richieste generano un errore. Quando tracè abilitata una pagina extra chiamata trace.axd è stato aggiunto all'applicazione (vedi immagine sotto). Questa pagina è collegata all'applicazione e mostrerà tutte le richieste e il loro stato.
Come abilitare Tracprogettazione di un'applicazione in ASP.NET
Vediamo come abilitare traccercando un Applicazione ASP.NET:
Passo 1) Lavoriamo sulla nostra DemoApplication. Apri il file web.config da Esplora soluzioni.
Passo 2) Aggiungi la seguente riga di codice al file web.config. tracL'istruzione e viene utilizzata per abilitare tracing per l'applicazione.
- Il requestLimit nel trace l'istruzione specifica il numero di richieste di pagina che devono essere traced.
- Nel nostro esempio, impostiamo un limite di 40. Imponiamo un limite perché un valore superiore comprometterebbe le prestazioni dell'applicazione.
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0" /> <trace enabled="true" pageOutput="false" requestLimit="40" localOnly="false" /> </system.web> </configuration>
Esegui l'applicazione demo in Visual Studio.
Produzione:-
Se ora navighi verso il URL http://localhost:53003/trace.axdQui potrai visualizzare le informazioni relative a ciascuna richiesta. Puoi verificare se si sono verificati errori nell'applicazione. Nella pagina vengono visualizzate le seguenti tipologie di informazioni:
- L'ora della richiesta della pagina web.
- Il nome della pagina web richiesta.
- Il codice di stato della richiesta web (un codice di stato 200 indica che la richiesta è andata a buon fine).
- Il link "Visualizza dettagli" consente di visualizzare maggiori informazioni sulla richiesta web. Un dettaglio importante fornito è l'intestazione, che mostra quali informazioni vengono inviate nell'intestazione di ogni richiesta web.
Livello di pagina Tracin ASP.NET
Livello di pagina TracING In ASP.NET vengono visualizzate tutte le informazioni generali su una pagina web durante la sua elaborazione. Questo è utile per il debug se una pagina non funziona per qualsiasi motivo. Visual Studio fornisce informazioni dettagliate su vari aspetti della pagina, come ad esempio il tempo impiegato da ciascun metodo chiamato nella richiesta web.
Ad esempio, se la tua applicazione web presenta un problema di prestazioni, queste informazioni possono essere utili per il debug. Queste informazioni vengono visualizzate quando l'applicazione viene eseguita in Visual Studio.
Come abilitare Tracing a livello di pagina in ASP.NET
Vediamo come abilitare il livello di pagina tracper un'applicazione ASP.NET:
Passo 1) Lavoriamo sulla nostra DemoApplication. Apri il file demo.aspx da Esplora soluzioni.
Passo 2) Aggiungi la seguente riga di codice per abilitare la pagina tracing. Nella dichiarazione della pagina, basta aggiungere l'attributo Trace="true". Questa riga di codice consentirà il livello di pagina tracING.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" Trace="true" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> </form> </body> </html>
Eseguire l'applicazione in Visual Studio.
Produzione:-
Ora, quando viene visualizzata la pagina Web Demo.aspx, otterrai molte informazioni sulla pagina. In questa pagina vengono visualizzate informazioni come il tempo per ciascun 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 qualsiasi tipo di errore, una pagina personalizzata visualizzerà questo errore all'utente.
Nel nostro esempio, aggiungeremo innanzitutto una pagina HTML. Questa pagina visualizzerà all'utente la stringa "Stiamo esaminando il problema". Successivamente, aggiungeremo del codice di errore alla nostra pagina demo.aspx in modo che venga visualizzata la pagina di errore. Seguiamo i passaggi descritti di seguito.
Passo 1) Lavoriamo sulla nostra DemoApplication. Aggiungiamo una pagina HTML all'applicazione.
- Fai clic con il pulsante destro del mouse su DemoApplication in Esplora soluzioni.
- Seleziona l'opzione di menu Aggiungi->Pagina HTML.
Passo 2) Nel passaggio successivo, dobbiamo fornire un nome alla nuova pagina HTML.
- Specificare il nome ErrorPage.
- Fare clic sul pulsante OK per procedere.
Passo 3) La pagina di errore si aprirà automaticamente in Visual Studio. Se si accede a Esplora soluzioni, si vedrà il file aggiunto.
Aggiungi 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.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> We are looking into the problem </body> </html>
Passo 4) Ora è necessario apportare una modifica al file web.config. Questa modifica indicherà che, ogni volta che si verifica un errore nell'applicazione, deve essere visualizzata la pagina di errore personalizzata. Il tag customErrors consente di definire una pagina di errore personalizzata. La proprietà defaultRedirect viene impostata sul nome della pagina di errore personalizzata creata nel passaggio precedente.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
Passo 5) Ora aggiungiamo del codice errato alla pagina demo.aspx.cs. Apri questa pagina facendo doppio clic sul file in Esplora soluzioni.
Aggiungi il codice seguente al file Demo.aspx.cs.
- Queste righe di codice sono progettate per leggere le righe di testo da un file.
- Il file dovrebbe trovarsi nell'unità D con il nome Example.txt.
- Ma nella nostra situazione, questo file in realtà non esiste. Quindi questo codice genererà un errore durante l'esecuzione dell'applicazione.
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 Di Visual Studio e dovresti ottenere l'output seguente.
Produzione:-
La pagina sopra riportata indica che si è verificato un errore nell'applicazione. Di conseguenza, all'utente viene visualizzata la pagina ErrorPage.html.
Eccezione non gestita ASP.NET
Anche negli scenari migliori, possono verificarsi errori imprevedibili. Supponiamo che un utente acceda alla pagina sbagliata dell'applicazione. Questo è un evento impossibile da prevedere. In questi casi, ASP.NET può reindirizzare l'utente alla pagina ErrorPage.html.
Vediamo un esempio.
- Utilizzeremo la nostra stessa DemoApplication che contiene il file 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.
Passo 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 a tutte le pagine dell'applicazione.
Passo 2) Aggiungi la seguente riga di codice al file Global.asax.cs. Queste righe verranno utilizzate per verificare la presenza di errori e visualizzare di conseguenza la pagina ErrorPage.html.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if (lastErrorWrapper.GetHttpCode() == 404) Server.Transfer("~/ErrorPage.html"); } } }
Code Spiegazione:-
- La prima riga rappresenta il gestore dell'evento Application_Error. Questo evento viene richiamato ogni volta che si verifica un errore nell'applicazione. Si noti che il nome dell'evento deve essere Application_Error e i parametri devono essere quelli indicati sopra.
- Successivamente, definiamo un oggetto del tipo di classe HttpException. Questo è un oggetto standard che conterrà tutti i dettagli dell'errore. Utilizziamo quindi il metodo Server.GetLastError per ottenere tutti i dettagli dell'ultimo errore verificatosi nell'applicazione.
- Successivamente, controlliamo se il codice di errore dell'ultimo errore è 404 (il codice di errore 404 è il codice standard restituito quando un utente tenta di accedere a una pagina non trovata). In tal caso, reindirizziamo l'utente alla pagina ErrorPage.html.
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 seguente.
La pagina sopra riportata indica che si è verificato un errore nell'applicazione. Di conseguenza, all'utente viene visualizzata la pagina ErrorPage.html.
Registrazione degli errori ASP.NET
La registrazione degli errori dell'applicazione aiuta lo sviluppatore a eseguire il debug e a risolvere il problema in un secondo momento. ASP.NET offre la possibilità di registrare gli errori. Questo avviene nel file Global.asax.cs quando l'errore viene intercettato. Durante il processo di intercettazione, il messaggio di errore può essere scritto in un file di log.
Vediamo un esempio.
- Utilizzeremo la nostra stessa DemoApplication che contiene il file 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.
- Allo stesso tempo, scriveremo il messaggio di errore in un file di registro. Vediamo i passaggi per raggiungere questo obiettivo.
Passo 1) Lavoriamo sulla nostra DemoApplication. Apri il file Global.asax.cs da Esplora soluzioni.
Passo 2) Aggiungi la seguente riga di codice al file Global.asax.cs. Questa riga controllerà la presenza di errori e visualizzerà la pagina ErrorPage.html di conseguenza. Inoltre, contemporaneamente, registreremo i dettagli dell'errore in un file chiamato AllErrors.txt. Nel nostro esempio, scriveremo del codice per creare questo file sull'unità D.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str = ""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllText(path, str); Server.Transfer("~/ErrorPage.html"); } } }
Code Spiegazione:-
- La prima riga serve a recuperare l'errore stesso utilizzando il metodo Server.GetLastError. Questo viene poi assegnato alla variabile exc.
- Creiamo quindi una variabile stringa vuota chiamata str. Recuperiamo il messaggio di errore effettivo utilizzando la proprietà exc.Message. La proprietà exc.Message conterrà il messaggio esatto per qualsiasi errore che si verifica durante l'esecuzione dell'applicazione. Questo messaggio viene quindi assegnato alla variabile stringa.
- Successivamente, definiamo il file chiamato AllErrors.txt. È qui che verranno inviati tutti i messaggi di errore. Scriviamo in questo file la stringa str che contiene tutti i messaggi di errore.
- Infine, trasferiamo l'utente nel 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 seguente.
Allo stesso tempo, se apri il file AllErrors.txt, vedrai le seguenti informazioni.
Il messaggio di errore può quindi essere inoltrato allo sviluppatore in un secondo momento per scopi di debug.





























