Asp.Net praćenje razine stranice, otklanjanje pogrešaka, rukovanje pogreškama [primjer]

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 to je moguće učiniti 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?

Debugging je proces dodavanja prijelomnih točaka aplikaciji. Ove se prijelomne točke koriste za pauziranje izvođenja programa koji se izvodi. To omogućuje razvojnom programeru da razumije što se događa u programu u određenom trenutku.

Uzmimo primjer programa. Program korisniku prikazuje niz "We are debugging". Pretpostavimo da kada pokrenemo aplikaciju, iz nekog razloga, niz nije prikazan. Da bismo identificirali problem, moramo dodati prijelomnu točku. Možemo dodati prijelomnu točku u red koda koji prikazuje niz. Ova prekidna točka će pauzirati izvođenje programa. U ovoj točki programer može vidjeti što bi moglo poći po zlu. Programer ispravlja program u skladu s tim.

Ovdje ćemo u primjeru koristiti našu 'DemoApplication' koja je stvorena u ranijim poglavljima. U sljedećem primjeru ćemo vidjeti

  • 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 pogreške u aplikaciji u ASP.NET-u

U nastavku su navedeni koraci za izradu demo aplikacije, dodavanje prijelomnih točaka i otklanjanje pogrešaka u ASP.Netu:

Korak 1) Otvorite aplikaciju u Visual Studiju
Prvo osigurajmo da je naša web aplikacija otvorena u Visual Studiju. Provjerite je li DemoApplication otvorena u Visual Studiju.

Debugirajte aplikaciju u ASP.NET-u

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.

Debugirajte aplikaciju u ASP.NET-u

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 prijelomnu točku aplikaciji
Prijelomna točka je točka u Visual Studiju na kojoj želite da se zaustavi izvođenje programa.

Debugirajte aplikaciju u ASP.NET-u

  1. Da biste dodali prijelomnu točku, morate kliknuti stupac u koji želite umetnuti prijelomnu točku. Dakle, u našem slučaju, želimo da se naš program zaustavi na retku koda "Response.Write". Ne morate dodati nikakvu naredbu da biste dodali prijelomnu točku. Samo trebate kliknuti na redak na koji želite dodati prijelomnu točku.
  2. 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 prijelomnih točaka

Korak 4) Pokrenite aplikaciju u načinu rada za uklanjanje pogrešaka
Sada morate pokrenuti svoju aplikaciju koristeći način otklanjanja pogrešaka. U Visual Studio odaberite opciju izbornika Debug->Start Debugging.

Debugirajte aplikaciju u ASP.NET-u

Izlaz:-

Debugirajte aplikaciju u ASP.NET-u

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 praćenje u ASP.NET-u?

Praćenje aplikacije omogućuje da se vidi da li neka od traženih stranica rezultira pogreškom. Kada je praćenje omogućeno, aplikaciji se dodaje dodatna stranica pod nazivom trace.axd. (Pogledajte sliku ispod). Ova stranica je priložena uz prijavu. Ova stranica će prikazati sve zahtjeve i njihov status.

Praćenje u ASP.NET-u

Kako omogućiti praćenje za aplikaciju u ASP.NET-u

Pogledajmo kako omogućiti praćenje za an ASP.Net aplikacija:

Korak 1) Poradimo na našoj 'DemoAplikaciji'. Otvorite datoteku web.config iz Solution Explorera.

Omogući praćenje za aplikaciju u ASP.NET-u

Korak 2) Dodajte donji redak koda u datoteku Web.config.

Izjava o praćenju koristi se za omogućavanje praćenja za aplikaciju.

  • Koristi se 'requestLimit' u izjavi praćenja. Određuje broj zahtjeva stranice koji se moraju pratiti.
  • U našem primjeru dajemo ograničenje od 40. Dajemo ograničenje jer će viša vrijednost pogoršati performanse aplikacije.

Omogući praćenje za aplikaciju u ASP.NET-u

<?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 enable="true" pageOutput="false" requestLimit="40" localOnly="false"/>
		
	</system.web>
</configuration>

Pokrenite “demoapplication” u Visual Studio.

Izlaz:-

Omogući praćenje za aplikaciju u ASP.NET-u

Ako sada pregledate URL – http://localhost:53003/trace.axd , vidjet ćete informacije za svaki zahtjev. Ovdje možete vidjeti pojavljuju li se pogreške u aplikaciji. Na gornjoj stranici prikazane su sljedeće vrste informacija

  1. Vrijeme zahtjeva za web stranicu.
  2. Naziv web stranice koja se traži.
  3. Kôd statusa web zahtjeva. (statusni kod 200 znači da je zahtjev uspješan).
  4. Prikaz pojedinosti koji dopuštate da vidite više pojedinosti o web zahtjevu. Primjer toga prikazan je u nastavku. Jedna važna detaljna informacija je informacija zaglavlja. Ove informacije pokazuju koje su informacije poslane u zaglavlju svakog web zahtjeva.

Omogući praćenje za aplikaciju u ASP.NET-u

Praćenje razine stranice u ASP.NET-u

Praćenje na razini stranice u ASP.Netu prikazuje sve opće informacije o web stranici dok se ona obrađuje. Ovo je korisno za otklanjanje pogrešaka ako stranica ne radi iz bilo kojeg razloga. Visual Studio pruža detaljne informacije o različitim aspektima stranice i informacije kao što je vrijeme za svaku metodu koja se poziva u web zahtjevu.

Na primjer, ako vaša web aplikacija ima problem s performansama, ove informacije mogu pomoći u otklanjanju pogrešaka problema. Ove informacije se prikazuju kada se aplikacija pokrene u Visual Studiju.

Kako omogućiti praćenje na razini stranice u ASP.NET-u

Pogledajmo kako omogućiti praćenje na razini stranice za ASP.Net aplikaciju:

Korak 1) Idemo raditi na našoj DemoAplikaciji. Otvorite datoteku demo.aspx iz Solution Explorera

Praćenje razine stranice u ASP.NET-u

Korak 2) Dodajte donji redak koda kako biste omogućili praćenje stranice. U deklaraciji stranice samo dodajte redak Trace=”true”. Ova linija koda omogućit će praćenje na razini stranice.

Praćenje razine stranice u ASP.NET-u

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

	<!DOCTYPE html>
<html xmlns="http://www.w3.ore/1999/xhtml">
<head runat="server">
	<title></title>
</head>	
	<body>
	  <form id="form1" runat="server”>
	  </form>
</body>
</html>

Pokrenite aplikaciju u Visual Studio.

Izlaz:-

Praćenje razine stranice u ASP.NET-u

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 "Tražimo problem". Zatim ćemo dodati neki kod pogreške na našu demo.aspx stranicu kako bi se prikazala stranica pogreške.

Slijedimo dolje navedene korake

Korak 1) Idemo raditi na našoj DemoAplikaciji. Dodajmo HTML stranicu aplikaciji

  1. Desnom tipkom miša kliknite DemoApplication u Solution Exploreru
  2. Odaberite opciju izbornika 'Dodaj'->HTML stranica

Rješavanje pogrešaka u ASP.Netu

Korak 2) U sljedećem koraku moramo dati naziv novoj HTML stranici.

  1. Navedite naziv kao 'ErrorPage.'
  2. Pritisnite gumb 'OK' za nastavak.

Rješavanje pogrešaka u ASP.Netu

Korak 3) Stranica s pogreškama automatski će se otvoriti u Visual Studiju. Ako odete u Solution Explorer, vidjet ćete dodanu datoteku.

Rješavanje pogrešaka u ASP.Netu

Dodajte redak koda "Tražimo problem" na HTML stranicu. Ne morate zatvoriti HTML datoteku prije nego što napravite promjenu u datoteci web.config.

Rješavanje pogrešaka u ASP.Netu

<!DOCTYPE html>
<html xmlns="http://www.w3.ore/1999/xhtml">
<head runat="server">
	<title></title>
</head>	
	<body>
	  We are looking into the problem
	</body>
</html>

Korak 4) Sada morate napraviti promjenu u datoteci web.config. Ova će promjena obavijestiti da kad god se pojavi pogreška u aplikaciji, potrebno je prikazati prilagođenu stranicu s pogreškom.

Oznaka 'customErrors' omogućuje definiranje prilagođene stranice pogreške. Svojstvo defaultRedirect postavljeno je na naziv naše prilagođene stranice s pogreškama stvorene u prethodnom koraku.

Rješavanje pogrešaka u ASP.Netu

<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) Dodajmo sada neki pogrešan kod na stranicu demo.aspx.cs. Otvorite ovu stranicu dvostrukim klikom na datoteku u Solution Exploreru

Rješavanje pogrešaka u ASP.Netu

Dodajte donji kod u datoteku Demo.aspx.cs.

  • Ove linije koda dizajnirane su za čitanje redaka teksta iz datoteke.
  • Datoteka bi se trebala nalaziti na D pogonu 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.

Rješavanje pogrešaka u ASP.Netu

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:-

Rješavanje pogrešaka u ASP.Netu

Gornja stranica pokazuje da je došlo do pogreške u aplikaciji. Kao rezultat, korisniku se prikazuje stranica Error.html.

ASP.NET neobrađena iznimka

Čak iu najboljem scenariju može doći do greš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 o tome.

  • Koristit ćemo našu istu 'DemoAplikaciju' 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. Pogledajmo korake kako to postići.

Korak 1) Idemo raditi na našoj DemoAplikaciji. Otvorite datoteku Global.asax.cs iz Solution Explorera

ASP.NET neobrađena iznimka

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 redovi će se koristiti za provjeru grešaka i prikaz stranice ErrorPage.html u skladu s tim.

ASP.NET neobrađena iznimka

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

Objašnjenje koda:-

  1. Prvi red je rukovatelj događajem Application_Error. Ovaj događaj se poziva kad god se pojavi greška u aplikaciji. Imajte na umu da naziv događaja mora biti 'Application_Error'. A parametri bi trebali biti kao što je prikazano gore.
  2. 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.
  3. Zatim provjeravamo je li šifra pogreške posljednje pogreške 404. (Šifra pogreške 404 standardni je kod koji se vraća kada korisnik pregledava stranicu koja nije pronađena). Zatim prebacujemo korisnika na stranicu ErrorPage.html ako se kôd pogreške podudara.

Sada pokrenite kod u Visual Studio i trebali biste dobiti donji rezultat

Izlaz:-

Pregledajte stranicu http://localhost:53003/Demo1.aspx . Zapamtite da Demo1.aspx ne postoji u našoj aplikaciji. Tada ćete dobiti donji izlaz.

Neobrađena iznimka u ASP.NET-u

Gornja stranica pokazuje da je došlo do pogreške u aplikaciji. Kao rezultat, korisniku se prikazuje stranica Error.html.

ASP.NET Zapisivanje pogrešaka

Bilježenjem pogrešaka aplikacije pomaže razvojnom programeru da otkloni pogreške i riješi pogrešku kasnije. ASP.Net ima mogućnost bilježenja pogrešaka. To se radi u datoteci Global.asax.cs kada se pogreška uhvati. Tijekom procesa snimanja poruka o pogrešci može se zapisati u datoteku dnevnika.

Pogledajmo primjer o tome.

  • Koristit ćemo našu istu DemoAplikaciju 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 u isto vrijeme, mi ćemo napisati poruku o pogrešci u log datoteku. Pogledajmo korake kako to postići.

Korak 1) Idemo raditi na našoj DemoAplikaciji. Otvorite datoteku Global.asax.cs iz Solution Explorera

ASP.NET Zapisivanje pogrešaka

Korak 2) Dodajte donji redak koda u global.asax.cs. Provjerit će pogreške i u skladu s tim prikazati stranicu ErrorPage.html. Istodobno ćemo zabilježiti detalje pogreške u datoteku pod nazivom 'AllErrors.txt.' Za naš primjer, mi ćemo napisati kod za kreiranje ove datoteke na D pogonu.

ASP.NET Zapisivanje pogrešaka

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

Objašnjenje koda:-

  1. Prvi red je da dobijete samu pogrešku pomoću metode 'Server.GetLastError'. To se zatim dodjeljuje varijabli 'exc'.
  2. Zatim stvaramo praznu string varijablu pod nazivom 'str'. Stvarnu poruku o pogrešci dobivamo pomoću svojstva 'exc.Message'. Svojstvo exc.Message imat će točnu poruku za svaku pogrešku koja se dogodi tijekom pokretanja aplikacije. To se zatim dodjeljuje varijabli niza.
  3. Zatim definiramo datoteku pod nazivom 'AllErrrors.txt.' Ovdje će se slati sve poruke o pogrešci. U ovu datoteku pišemo niz 'str' koji sadrži sve poruke o pogrešci.
  4. 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.

ASP.NET Zapisivanje pogrešaka

U isto vrijeme, ako otvorite datoteku 'AllErrors.txt', vidjet ćete informacije u nastavku.

ASP.NET Zapisivanje pogrešaka

Poruka o pogrešci može se kasnije proslijediti razvojnom programeru u svrhu otklanjanja pogrešaka.

rezime

  • ASP.Net ima mogućnost obavljanja otklanjanja pogrešaka i rukovanja pogreškama.
  • Otklanjanje pogrešaka može se postići dodavanjem prijelomnih točaka kodu. Zatim se pokreće opcija Start with Debugging u Visual Studio za ispravljanje pogrešaka koda.
  • Praćenje je mogućnost pružanja više informacija tijekom izvođenja aplikacije. To se može učiniti na razini aplikacije ili stranice.
  • Na razini stranice, kod Trace=true treba dodati direktivi stranice.
  • Na razini aplikacije kreira se dodatna stranica pod nazivom Trace.axd za aplikaciju. Time se dobivaju sve potrebne informacije o praćenju.