Razina stranice Asp.Net-a Tracing, otklanjanje pogrešaka, rukovanje greškama
⚡ Pametni sažetak
ASP.NET otklanjanje pogrešaka, tracObrada i rukovanje greškama u Visual Studiju pomaže programerima da rano uoče probleme i prate zahtjeve. trace.axd i preusmjeravaju korisnike na prilagođene stranice s pogreškama kada se tijekom razvojnog i produkcijskog ciklusa dogode neobrađene iznimke.
U bilo kojoj aplikaciji sigurno će se pojaviti pogreške tijekom procesa razvoja. Važno je moći otkriti pogreške u ranoj fazi.
U Visual Studiju je to moguće za ASP.NET aplikacije. Visual Studio se koristi za otklanjanje pogrešaka i ima tehnike rukovanja greškama za ASP.NET.
Što je otklanjanje pogrešaka u ASP.NET-u?
Otklanjanje grešaka je proces dodavanja točaka prekida aplikaciji. Ove točke prekida koriste se za pauziranje izvršavanja programa koji se izvršava. To omogućuje programeru da razumije što se događa u programu u određenom trenutku.
Uzmimo primjer programa. Program korisniku prikazuje niz znakova „Ispravljanje pogrešaka“. Pretpostavimo da se, kada pokrenemo aplikaciju, niz znakova iz nekog razloga ne prikazuje. Kako bismo identificirali problem, moramo dodati točku prekida. Možemo dodati točku prekida u redak koda koji prikazuje niz znakova. Ova točka prekida će pauzirati izvršavanje programa. U ovom trenutku programer može vidjeti što možda nije u redu. Programer u skladu s tim ispravlja program.
Ovdje u primjeru koristit ćemo našu DemoApplication koja je kreirana u prethodnim poglavljima. U sljedećem primjeru vidjet ćemo:
- Kako učiniti da demo aplikacija prikazuje niz.
- Kako dodati prijelomne točke aplikaciji.
- Kako otkloniti pogreške u aplikaciji pomoću ove prijelomne točke.
Kako otkloniti greške u aplikaciji u ASP.NET-u
U nastavku su navedeni koraci za izradu demo aplikacije, dodavanje točaka prekida i ispravljanje pogrešaka u ASP.NET-u:
Korak 1) Otvorite aplikaciju u Visual Studiju.
Prvo se pobrinimo da je naša web aplikacija otvorena u Visual Studiju. Provjerite je li DemoApplication otvorena u Visual Studiju.
Korak 2) Sada otvorite datoteku Demo.aspx.cs i dodajte donju liniju koda.
- Upravo dodajemo liniju koda Response.Write za prikaz niza.
- Dakle, kada se aplikacija pokrene, trebala bi prikazati niz "We are debugging" u web pregledniku.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
Korak 3) Dodajte točku prekida u aplikaciju.
Prijelomna točka je točka u Visual Studiju na kojoj želite da se zaustavi izvođenje programa.
- Za dodavanje točke prekida, morate kliknuti na stupac u koji želite umetnuti točku prekida. Dakle, u našem slučaju želimo da se naš program zaustavi na retku koda „Response.Write“. Ne morate dodavati nikakvu naredbu za dodavanje točke prekida. Samo trebate kliknuti na redak u koji želite dodati točku prekida.
- Kada to učinite, primijetit ćete da je kod označen crvenom bojom. Također, crveni oblačić pojavljuje se u stupcu pokraj retka koda.
Bilješka: U aplikaciji možete dodati više točaka prekida.
Korak 4) Pokrenite aplikaciju u načinu rada za otklanjanje pogrešaka.
Sada morate pokrenuti svoju aplikaciju koristeći način otklanjanja pogrešaka. U Visual Studio odaberite opciju izbornika Debug->Start Debugging.
Izlaz:-
Kada sve korake izvedete ispravno, izvršenje programa će se prekinuti. Visual Studio će otići do prijelomne točke i žutom bojom označiti liniju koda.
Sada, ako programer osjeti da kod nije točan, izvođenje se može zaustaviti. Kod se tada može u skladu s tim modificirati. Za nastavak programa, programer mora pritisnuti tipku F5 na tipkovnici.
Što je Tracradite u ASP.NET-u?
primjena tracing. omogućuje pregled jesu li neke od traženih stranica rezultirale pogreškom. Kada tracomogućena je dodatna stranica pod nazivom tracDatoteka e.axd dodaje se aplikaciji (vidi sliku ispod). Ova stranica je priložena aplikaciji i prikazivat će sve zahtjeve i njihov status.
Kako omogućiti Tracza aplikaciju u ASP.NET-u
Pogledajmo kako omogućiti tracing za ASP.NET aplikacija:
Korak 1) Radimo na našoj DemoApplication. Otvorite datoteku web.config iz Solution Explorera.
Korak 2) Dodajte donji redak koda u datoteku web.config. trace-izjava se koristi za omogućavanje tracza prijavu.
- RequestLimit u tracIzjava određuje broj zahtjeva za stranicu koji moraju biti traced.
- U našem primjeru dajemo ograničenje od 40. Dajemo ograničenje jer će viša vrijednost smanjiti performanse aplikacije.
<?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>
Pokrenite DemoApplication u Visual Studiju.
Izlaz:-
Ako sada pregledate URL http://localhost:53003/trace.axd, vidjet ćete informacije za svaki zahtjev. Ovdje možete vidjeti jesu li se u aplikaciji pojavile pogreške. Na stranici su prikazane sljedeće vrste informacija:
- Vrijeme zahtjeva za web stranicu.
- Naziv web stranice koja se traži.
- Statusni kod web zahtjeva (statusni kod 200 znači da je zahtjev uspješan).
- Veza Prikaži detalje omogućuje vam pregled više detalja o web zahtjevu. Jedan važan detalj su informacije u zaglavlju koje pokazuju koje se informacije šalju u zaglavlju svakog web zahtjeva.
Razina stranice Tracu ASP.NET-u
Razina stranice Tracing. U ASP.NET-u prikazuje sve opće informacije o web stranici kada se obrađuje. To je korisno pri otklanjanju pogrešaka ako stranica iz bilo kojeg razloga ne radi. Visual Studio pruža detaljne informacije o raznim aspektima stranice, kao što je vrijeme za svaku metodu koja se poziva u web zahtjevu.
Na primjer, ako vaša web aplikacija ima problema s performansama, ove informacije mogu pomoći u otklanjanju pogrešaka. Ove se informacije prikazuju kada se aplikacija pokrene u Visual Studiju.
Kako omogućiti Tracna razini stranice u ASP.NET-u
Pogledajmo kako omogućiti razinu stranice tracza ASP.NET aplikaciju:
Korak 1) Radimo na našoj DemoApplication. Otvorite datoteku demo.aspx iz Solution Explorera.
Korak 2) Dodajte donji redak koda kako biste omogućili stranicu tracing. U deklaraciji stranice samo dodajte atribut Trace=”true”. Ovaj redak koda omogućit će 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>
Pokrenite aplikaciju u Visual Studio.
Izlaz:-
Sada kada se prikaže web stranica Demo.aspx, dobit ćete mnogo informacija o stranici. Informacije poput vremena za svaki aspekt životnog ciklusa stranice prikazane su na ovoj stranici.
Rješavanje pogrešaka: Prikaz prilagođene stranice s pogreškama
In ASP.NET, možete imati prilagođene stranice s pogreškama prikazane korisnicima. Ako aplikacija sadrži bilo kakvu pogrešku, prilagođena stranica prikazat će tu pogrešku korisniku.
U našem primjeru, prvo ćemo dodati HTML stranicu. Ova stranica će korisniku prikazati niz znakova „Istraživamo problem“. Zatim ćemo na našu demo.aspx stranicu dodati kod pogreške kako bi se prikazala stranica s pogreškom. Slijedimo dolje navedene korake.
Korak 1) Radimo na našoj DemoAplikaciji. Dodajmo HTML stranicu aplikaciji.
- Desnom tipkom miša kliknite na DemoApplication u Solution Exploreru.
- Odaberite opciju izbornika Dodaj->HTML stranica.
Korak 2) U sljedećem koraku moramo dati naziv novoj HTML stranici.
- Navedite naziv kao ErrorPage.
- Pritisnite gumb OK za nastavak.
Korak 3) Stranica s pogreškom (ErrorPage) će se automatski otvoriti u Visual Studiju. Ako odete u Solution Explorer, vidjet ćete dodanu datoteku.
Dodajte redak koda „Razmatramo problem“ na HTML stranicu. Ne morate zatvoriti HTML datoteku prije nego što izvršite promjenu u datoteci 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>
Korak 4) Sada trebate napraviti promjenu u datoteci web.config. Ova promjena će obavijestiti da se prilikom svake pogreške u aplikaciji mora prikazati prilagođena stranica s pogreškom. Oznaka customErrors omogućuje definiranje prilagođene stranice s pogreškom. Svojstvo defaultRedirect postavljeno je na naziv naše prilagođene stranice s pogreškom stvorene u prethodnom koraku.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
Korak 5) Sada dodajmo neispravan kod na stranicu demo.aspx.cs. Otvorite ovu stranicu dvostrukim klikom na datoteku u Solution Exploreru.
Dodajte donji kod u datoteku Demo.aspx.cs.
- Ovi redci koda su dizajnirani za čitanje redaka teksta iz datoteke.
- Datoteka bi se trebala nalaziti na D disku pod nazivom Example.txt.
- Ali u našoj situaciji ta datoteka zapravo ne postoji. Stoga će ovaj kod rezultirati pogreškom kada se aplikacija pokrene.
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); } } }
Sada izvršite kod Visual Studio i trebali biste dobiti donji izlaz.
Izlaz:-
Gornja stranica pokazuje da je u aplikaciji došlo do pogreške. Kao rezultat toga, korisniku se prikazuje stranica ErrorPage.html.
ASP.NET neobrađena iznimka
Čak i u najboljim scenarijima, mogu se dogoditi slučajevi pogrešaka koje jednostavno nisu predviđene. Pretpostavimo da korisnik pregledava pogrešnu stranicu u aplikaciji. To je nešto što se ne može predvidjeti. U takvim slučajevima, ASP.NET može preusmjeriti korisnika na ErrorPage.html.
Pogledajmo primjer ovoga.
- Koristit ćemo našu istu DemoApplication koja ima ErrorPage.html.
- I pokušat ćemo vidjeti web stranicu koja ne postoji u našoj aplikaciji.
- U ovom slučaju trebali bismo biti preusmjereni na našu stranicu ErrorPage.html. Pogledajmo korake za postizanje toga.
Korak 1) Radimo na našoj DemoApplication. Otvorite datoteku Global.asax.cs iz Solution Explorera.
Bilješka: Datoteka Global.asax.cs koristi se za dodavanje koda koji će biti primjenjiv na svim stranicama u aplikaciji.
Korak 2) Dodajte donji redak koda u Global.asax.cs. Ovi će se naredbe koristiti za provjeru pogrešaka i prikaz stranice ErrorPage.html u skladu s tim.
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 Obrazloženje:-
- Prvi redak je rukovatelj događajem Application_Error. Ovaj događaj se poziva kad god se dogodi greška u aplikaciji. Imajte na umu da naziv događaja mora biti Application_Error, a parametri trebaju biti kao što je prikazano gore.
- Zatim definiramo objekt klase tipa HttpException. Ovo je standardni objekt koji će sadržavati sve pojedinosti pogreške. Zatim koristimo metodu Server.GetLastError da dobijemo sve pojedinosti o zadnjoj pogrešci koja se dogodila u aplikaciji.
- Zatim provjeravamo je li kod pogreške posljednje pogreške 404 (kod pogreške 404 je standardni kod koji se vraća kada korisnik pregledava stranicu koja nije pronađena). Nakon toga preusmjeravamo korisnika na stranicu ErrorPage.html ako se kod pogreške podudara.
Sada pokrenite kod u Visual Studiju i trebali biste dobiti donji izlaz.
Izlaz:-
Pregledajte stranicu http://localhost:53003/Demo1.aspx. Zapamtite da Demo1.aspx ne postoji u našoj aplikaciji. Tada ćete dobiti donji izlaz.
Gornja stranica pokazuje da je u aplikaciji došlo do pogreške. Kao rezultat toga, korisniku se prikazuje stranica ErrorPage.html.
Zapisivanje pogrešaka u ASP.NET-u
Zapisivanjem pogrešaka aplikacije pomaže se programeru da kasnije otkloni pogreške i riješi ih. ASP.NET ima mogućnost zapisivanja pogrešaka. To se radi u datoteci Global.asax.cs kada se pogreška zabilježi. Tijekom procesa zapisivanja, poruka o pogrešci može se zapisati u datoteku zapisnika.
Pogledajmo primjer ovoga.
- Koristit ćemo našu istu DemoApplication koja ima ErrorPage.html.
- I pokušat ćemo vidjeti web stranicu koja ne postoji u našoj aplikaciji.
- U ovom bismo slučaju trebali biti preusmjereni na našu stranicu ErrorPage.html.
- I istovremeno ćemo zapisati poruku o pogrešci u datoteku zapisnika. Pogledajmo korake za postizanje ovoga.
Korak 1) Radimo na našoj DemoApplication. Otvorite datoteku Global.asax.cs iz Solution Explorera.
Korak 2) Dodajte donji redak koda u Global.asax.cs. Provjerit će ima li pogrešaka i u skladu s tim prikazati stranicu ErrorPage.html. Također, istovremeno ćemo zabilježiti detalje pogreške u datoteku pod nazivom AllErrors.txt. Za naš primjer, napisat ćemo kod za stvaranje ove datoteke na D disku.
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 Obrazloženje:-
- Prvi redak je za dobivanje same greške korištenjem metode Server.GetLastError. To se zatim dodjeljuje varijabli exc.
- Zatim stvaramo praznu varijablu tipa string pod nazivom str. Stvarnu poruku o pogrešci dobivamo pomoću svojstva exc.Message. Svojstvo exc.Message sadržavat će točnu poruku za bilo koju pogrešku koja se dogodi prilikom pokretanja aplikacije. To se zatim dodjeljuje varijabli tipa string.
- Zatim definiramo datoteku pod nazivom AllErrors.txt. Ovdje će se slati sve poruke o pogreškama. U ovu datoteku upisujemo niz znakova str koji sadrži sve poruke o pogreškama.
- Na kraju, prebacujemo korisnika u datoteku ErrorPage.html.
Izlaz:-
Pregledajte stranicu http://localhost:53003/Demo1.aspx. Zapamtite da Demo1.aspx ne postoji u našoj aplikaciji. Tada ćete dobiti donji izlaz.
I istovremeno, ako otvorite datoteku AllErrors.txt, vidjet ćete dolje navedene informacije.
Poruka o pogrešci može se kasnije proslijediti razvojnom programeru u svrhu otklanjanja pogrešaka.





























