Urmărirea, depanarea, gestionarea erorilor la nivel de pagină Asp.Net (exemplu)

Cuprins:

Anonim

În orice aplicație, erorile trebuie să apară în timpul procesului de dezvoltare. Este important să puteți descoperi erori într-un stadiu incipient.

În Visual Studio, este posibil să faceți acest lucru pentru aplicațiile ASP.Net. Visual Studio este utilizat pentru depanare și are tehnici de tratare a erorilor pentru ASP.Net.

În acest tutorial, veți învăța-

  • Ce este Depanarea în ASP.NET?
  • Ce este urmărirea în ASP.NET?
  • Urmărirea nivelului de pagină
  • Tratarea erorilor: afișarea unei pagini de erori personalizate
  • Excepție ASP.NET Unhandled
  • ASP.NET Eroare de înregistrare

Ce este Depanarea în ASP.NET?

Depanarea este procesul de adăugare a punctelor de întrerupere la o aplicație. Aceste puncte de întrerupere sunt folosite pentru a întrerupe executarea unui program care rulează. Aceasta permite dezvoltatorului să înțeleagă ce se întâmplă într-un program într-un anumit moment.

Să luăm un exemplu de program. Programul afișează un șir „Depanăm” către utilizator. Să presupunem că atunci când rulăm aplicația, dintr-un anumit motiv, șirul nu este afișat. Pentru a identifica problema, trebuie să adăugăm un punct de întrerupere. Putem adăuga un punct de întrerupere la linia de cod care afișează șirul. Acest punct de întrerupere va întrerupe executarea programului. În acest moment, programatorul poate vedea ce se întâmplă prost. Programatorul rectifică programul în consecință.

Aici, în exemplu, vom folosi „DemoApplication” care a fost creată în capitolele anterioare. În exemplul următor, vom vedea

  • Cum se face ca aplicația demo să afișeze un șir.
  • Cum se adaugă puncte de întrerupere la o aplicație.
  • Cum să depanați aplicația utilizând acest punct de întrerupere.

Pasul 1) Să ne asigurăm mai întâi că avem aplicația noastră web deschisă în Visual Studio. Asigurați-vă că aplicația DemoApplication este deschisă în Visual Studio.

Pasul 2) Acum deschideți fișierul Demo.aspx.cs și adăugați linia de cod de mai jos.

  • Adăugăm doar linia de cod Response.Write pentru a afișa un șir.
  • Deci, atunci când aplicația se execută, ar trebui să afișeze șirul „Suntem de depanare” în browserul web.

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

Pasul 3) Acum să adăugăm un punct de întrerupere. Un punct de întrerupere este un punct din Visual Studio în care doriți să se oprească execuția programului.

  1. Pentru a adăuga un punct de întrerupere, trebuie să faceți clic pe coloana în care doriți să fie inserat punctul de întrerupere. Deci, în cazul nostru, dorim ca programul nostru să se oprească la linia de cod „Response.Write”. Nu trebuie să adăugați nicio comandă pentru a adăuga un punct de întrerupere. Trebuie doar să faceți clic pe linia pe care doriți să adăugați un punct de întrerupere.
  2. Odată ce ați făcut acest lucru, veți observa că codul este marcat cu roșu. De asemenea, un bul roșu apare în coloana de lângă linia de cod.

Notă: - Puteți adăuga mai multe puncte de întrerupere într-o aplicație

Pasul 4) Acum trebuie să rulați aplicația utilizând modul de depanare. În Visual Studio, alegeți opțiunea de meniu Depanare-> Începeți depanarea.

Ieșire: -

Când efectuați corect toți pașii, executarea programului se va întrerupe. Visual Studio va merge la punctul de întrerupere și va marca linia de cod în galben.

Acum, dacă programatorul consideră că codul este incorect, execuția poate fi oprită. Codul poate fi apoi modificat corespunzător. Pentru a continua programul, programatorul trebuie să facă clic pe butonul F5 de pe tastatură.

Ce este urmărirea în ASP.NET?

Urmărirea aplicației permite să vedeți dacă paginile solicitate au ca rezultat o eroare. Când urmărirea este activată, se adaugă la aplicație o pagină suplimentară numită trace.axd. (Vezi imaginea de mai jos). Această pagină este atașată aplicației. Această pagină va afișa toate cererile și starea acestora.

Să vedem cum să activați urmărirea pentru o aplicație.

Pasul 1) Să lucrăm la „DemoApplication”. Deschideți fișierul web.config din Solution Explorer.

Pasul 2) Adăugați linia de cod de mai jos în fișierul Web.config.

Instrucțiunea de urmărire este utilizată pentru a activa urmărirea aplicației.

  • Se folosește „requestLimit” în instrucțiunea trace. Specifică numărul de solicitări de pagină care trebuie urmărite.
  • În exemplul nostru, acordăm o limită de 40. Oferim limită, deoarece o valoare mai mare va degrada performanța aplicației.

Rulați "demoapplication" în Visual Studio.

Ieșire: -

Dacă navigați acum la adresa URL - http: // localhost: 53003 / trace.axd , veți vedea informațiile pentru fiecare solicitare. Aici puteți vedea dacă apar erori într-o aplicație. Următoarele tipuri de informații sunt afișate pe pagina de mai sus

  1. Ora solicitării paginii web.
  2. Numele paginii web solicitate.
  3. Codul de stare al cererii web. (codul de stare de 200 înseamnă că solicitarea are succes).
  4. Afișați detaliile pe care le permiteți să vizualizați mai multe detalii despre solicitarea web. Un exemplu în acest sens este prezentat mai jos. O informație detaliată importantă furnizată este informația antet. Aceste informații arată care sunt informațiile trimise în antetul fiecărei solicitări web.

Urmărirea nivelului de pagină

Urmărirea paginii afișează toate informațiile generale despre o pagină web atunci când aceasta este procesată. Acest lucru este util în depanare dacă o pagină nu funcționează din orice motiv.

Visual Studio va oferi informații detaliate despre diferite aspecte ale paginii. Informații, cum ar fi timpul pentru fiecare metodă care este apelată în solicitarea web. De exemplu, dacă aplicația dvs. web are o problemă de performanță, aceste informații vă pot ajuta la depanarea problemei. Aceste informații sunt afișate atunci când aplicația rulează în Visual Studio.

Să vedem cum să activați urmărirea unei aplicații la nivel de pagină.

Pasul 1) Să lucrăm la DemoApplication. Deschideți fișierul demo.aspx din Solution Explorer

Pasul 2) Adăugați linia de cod de mai jos pentru a activa urmărirea paginilor. În declarația de pagină, adăugați doar linia Trace = "true". Această linie de cod va permite urmărirea la nivel de pagină.

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

Acum, când este afișată pagina web Demo.aspx, veți obține o mulțime de informații despre pagină. Informații precum timpul pentru fiecare aspect al ciclului de viață al paginii sunt afișate pe această pagină.

Tratarea erorilor: afișarea unei pagini de erori personalizate

În ASP.Net, puteți avea pagini de eroare personalizate afișate utilizatorilor. Dacă o aplicație conține orice fel de eroare, o pagină personalizată va afișa această eroare utilizatorului.

În exemplul nostru, vom adăuga mai întâi o pagină HTML. Această pagină va afișa un șir către utilizator „Căutăm problema”. Apoi vom adăuga un cod de eroare la pagina noastră demo.aspx, astfel încât pagina de eroare să fie afișată.

Să urmăm pașii de mai jos

Pasul 1) Să lucrăm la DemoApplication. Să adăugăm o pagină HTML la aplicație

  1. Faceți clic dreapta pe DemoApplication în Solution Explorer
  2. Alegeți opțiunea de meniu „Adăugați” -> Pagină HTML

Pasul 2) În pasul următor, trebuie să oferim un nume noii pagini HTML.

  1. Furnizați numele ca „ErrorPage”.
  2. Faceți clic pe butonul „OK” pentru a continua.

Pasul 3) Pagina de erori se va deschide automat în Visual Studio. Dacă accesați Solution Explorer, veți vedea fișierul adăugat.

Adăugați linia de cod „Căutăm problema” la pagina HTML. Nu trebuie să închideți fișierul HTML înainte de a efectua modificarea fișierului web.config.

We are looking into the problem

Pasul 4) Acum trebuie să faceți o modificare în fișierul web.config. Această modificare va notifica că ori de câte ori apare o eroare în aplicație, trebuie afișată pagina de eroare personalizată.

Eticheta „customErrors” permite definirea unei pagini de eroare personalizate. Proprietatea defaultRedirect este setată la numele paginii noastre de erori personalizate create în pasul anterior.

Pasul 5) Acum să adăugăm un cod defect la pagina demo.aspx.cs. Deschideți această pagină făcând dublu clic pe fișier în Solution Explorer

Adăugați codul de mai jos în fișierul Demo.aspx.cs.

  • Aceste linii de cod sunt concepute pentru a citi liniile unui text dintr-un fișier.
  • Se presupune că fișierul se află în unitatea D cu numele „Example.txt”.
  • Dar în situația noastră, acest fișier nu există cu adevărat. Deci, acest cod va duce la o eroare atunci când aplicația rulează.

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);}}}

Acum executați codul în Visual Studio și ar trebui să obțineți rezultatul de mai jos.

Ieșire: -

Pagina de mai sus arată că a fost declanșată o eroare în aplicație. Ca urmare, pagina Error.html este afișată utilizatorului.

Excepție ASP.NET Unhandled

Chiar și în cele mai bune scenarii, pot exista cazuri de erori care nu sunt doar prevăzute.

Să presupunem dacă un utilizator navighează la pagina greșită din aplicație. Acest lucru este ceva ce nu poate fi prezis. În astfel de cazuri, ASP.Net poate redirecționa utilizatorul către errorpage.html.

Să vedem un exemplu în acest sens.

  • Vom folosi aceeași „DemoApplication” care are Errorpage.html.
  • Și vom încerca să vizualizăm o pagină web care nu există în aplicația noastră.
  • În acest caz, ar trebui să fim redirecționați către pagina noastră ErrorPage.html. Să vedem pașii pentru a realiza acest lucru.

Pasul 1) Să lucrăm la DemoApplication. Deschideți fișierul Global.asax.cs din Solution Explorer

NOTĂ : Fișierul global.asax.cs este utilizat pentru a adăuga cod care va fi aplicabil pe toate paginile aplicației.

Pasul 2) Adăugați linia de cod de mai jos la global.asax.cs. Aceste linii vor fi utilizate pentru a verifica erorile și pentru a afișa pagina ErrorPage.html în consecință.

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");}}}

Cod Explicație: -

  1. Prima linie este gestionarul de evenimente Application_Error. Acest eveniment este apelat ori de câte ori apare o eroare într-o aplicație. Rețineți că numele evenimentului trebuie să fie „Application_Error”. Și parametrii ar trebui să fie așa cum se arată mai sus.
  2. Apoi, definim un obiect de tipul clasei HttpException. Acesta este un obiect standard care va conține toate detaliile erorii. Apoi folosim metoda Server.GetLastError pentru a obține toate detaliile ultimei erori care a apărut în aplicație.
  3. Verificăm apoi dacă codul de eroare al ultimei erori este 404. (Codul de eroare 404 este codul standard returnat atunci când un utilizator navighează la o pagină care nu este găsită). Apoi, transferăm utilizatorul pe pagina ErrorPage.html dacă codul de eroare se potrivește.

Acum rulați codul în Visual Studio și ar trebui să obțineți rezultatul de mai jos

Ieșire: -

Răsfoiți pagina http: // localhost: 53003 / Demo1.aspx . Amintiți-vă că Demo1.aspx nu există în aplicația noastră. Veți obține apoi rezultatul de mai jos.

Pagina de mai sus arată că a fost declanșată o eroare în aplicație. Ca urmare, pagina Error.html este afișată utilizatorului.

ASP.NET Eroare de înregistrare

Prin înregistrarea erorilor aplicației, ajută dezvoltatorul să depaneze și să rezolve eroarea într-un moment ulterior. ASP.Net are posibilitatea de a înregistra erori. Acest lucru se face în fișierul Global.asax.cs atunci când eroarea este capturată. În timpul procesului de captare, mesajul de eroare poate fi scris într-un fișier jurnal.

Să vedem un exemplu în acest sens.

  • Vom folosi aceeași aplicație Demo care are Errorpage.html.
  • Și vom încerca să vizualizăm o pagină web care nu există în aplicația noastră.
  • În acest caz, ar trebui să fim redirecționați către pagina noastră ErrorPage.html.
  • Și, în același timp, vom scrie mesajul de eroare într-un fișier jurnal. Să vedem pașii pentru a realiza acest lucru.

Pasul 1) Să lucrăm la DemoApplication. Deschideți fișierul Global.asax.cs din Solution Explorer

Pasul 2) Adăugați linia de cod de mai jos la global.asax.cs. Acesta va verifica erorile și va afișa pagina ErrorPage.html în consecință. Tot în același timp, vom înregistra detaliile erorii într-un fișier numit „AllErrors.txt”. Pentru exemplul nostru, vom scrie cod pentru a crea acest fișier pe unitatea 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");}}}

Cod Explicație: -

  1. Prima linie este să obțineți eroarea însăși utilizând metoda „Server.GetLastError”. Aceasta este apoi atribuită variabilei „exc”.
  2. Apoi creăm o variabilă șir goală numită „str”. Primim mesajul de eroare real folosind proprietatea „exc.Message”. Proprietatea exc.Message va avea mesajul exact pentru orice eroare care apare la rularea aplicației. Aceasta este apoi atribuită variabilei șir.
  3. Apoi, definim fișierul numit „AllErrrors.txt”. Aici vor fi trimise toate mesajele de eroare. Scriem șirul „str” care conține toate mesajele de eroare în acest fișier.
  4. În cele din urmă, transferăm utilizatorul în fișierul ErrorPage.html.

Ieșire: -

Răsfoiți pagina http: // localhost: 53003 / Demo1.aspx . Amintiți-vă că Demo1.aspx nu există în aplicația noastră. Veți obține apoi rezultatul de mai jos.

Și, în același timp, dacă deschideți fișierul „AllErrors.txt”, veți vedea informațiile de mai jos.

Mesajul de eroare poate fi apoi transmis către dezvoltator într-un moment ulterior în scopuri de depanare.

rezumat

  • ASP.Net are facilitatea de a efectua depanarea și tratarea erorilor.
  • Depanarea poate fi realizată prin adăugarea de puncte de întrerupere la cod. Unul execută apoi opțiunea Start cu Depanare în Visual Studio pentru a depana codul.
  • Urmărirea este facilitatea de a furniza mai multe informații în timpul rulării aplicației. Acest lucru se poate face la nivel de aplicație sau pagină.
  • La nivelul paginii, codul Trace = true trebuie adăugat la directiva paginii.
  • La nivel de aplicație, se creează o pagină suplimentară numită Trace.axd pentru aplicație. Aceasta oferă toate informațiile de urmărire necesare.