Asp.Net-sideniveausporing, fejlfinding, fejlhåndtering (eksempel)

Indholdsfortegnelse:

Anonim

I enhver applikation opstår der fejl under udviklingsprocessen. Det er vigtigt at kunne opdage fejl på et tidligt tidspunkt.

I Visual Studio er det muligt at gøre dette til ASP.Net-applikationer. Visual Studio bruges til fejlfinding og har fejlhåndteringsteknikker til ASP.Net.

I denne vejledning lærer du-

  • Hvad er fejlretning i ASP.NET?
  • Hvad er sporing i ASP.NET?
  • Sporing af sideniveau
  • Fejlhåndtering: Visning af en brugerdefineret fejlside
  • ASP.NET Uhåndteret undtagelse
  • ASP.NET Fejl ved logning

Hvad er fejlretning i ASP.NET?

Fejlfinding er processen med at tilføje breakpoints til en applikation. Disse breakpoints bruges til at standse udførelsen af ​​et kørende program på pause. Dette giver udvikleren mulighed for at forstå, hvad der sker i et program på et bestemt tidspunkt.

Lad os tage et eksempel på et program. Programmet viser en streng "Vi debugger" til brugeren. Antag, at når vi kører applikationen, af en eller anden grund, vises strengen ikke. For at identificere problemet skal vi tilføje et breakpoint. Vi kan tilføje et brudpunkt til kodelinjen, der viser strengen. Dette brudpunkt stopper udførelsen af ​​programmet. På dette tidspunkt kan programmøren se, hvad der muligvis går galt. Programmøren korrigerer programmet i overensstemmelse hermed.

Her i eksemplet bruger vi vores 'DemoApplication', der blev oprettet i tidligere kapitler. I det følgende eksempel vil vi se

  • Sådan får du demo-applikationen til at vise en streng.
  • Sådan tilføjes breakpoints til en applikation.
  • Sådan debugges applikationen ved hjælp af dette breakpoint.

Trin 1) Lad os først sikre, at vi har vores webapplikation åben i Visual Studio. Sørg for, at DemoApplication er åben i Visual Studio.

Trin 2) Åbn nu filen Demo.aspx.cs, og tilføj nedenstående kodelinje.

  • Vi tilføjer bare kodelinjen Response.Write for at vise en streng.
  • Så når applikationen udføres, skal den vise strengen "Vi debugger" i webbrowseren.

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

Trin 3) Lad os nu tilføje et brudpunkt. Et brudpunkt er et punkt i Visual Studio, hvor du ønsker, at eksekveringen af ​​programmet skal stoppe.

  1. For at tilføje et pausepunkt skal du klikke på den kolonne, hvor du ønsker, at pausepunktet skal indsættes. Så i vores tilfælde ønsker vi, at vores program stopper ved kodelinjen "Response.Write". Du behøver ikke tilføje nogen kommando for at tilføje et breakpoint. Du skal bare klikke på den linje, hvor du vil tilføje et brudpunkt.
  2. Når dette er gjort, vil du bemærke, at koden bliver markeret med rødt. Der kommer også en rød boble op i kolonnen ved siden af ​​kodelinjen.

Bemærk: - Du kan tilføje flere pausepunkter i en applikation

Trin 4) Nu skal du køre din applikation ved hjælp af fejlretningstilstand. I Visual Studio skal du vælge menupunktet Debug-> Start Debugging.

Produktion:-

Når du udfører alle trinene korrekt, vil eksekveringen af ​​programmet gå i stykker. Visual Studio går til brudpunktet og markerer kodelinjen med gult.

Hvis programmereren nu føler, at koden er forkert, kan udførelsen stoppes. Koden kan derefter ændres i overensstemmelse hermed. For at fortsætte programmet fortsætter programmøren med at klikke på F5-knappen på tastaturet.

Hvad er sporing i ASP.NET?

Applikationssporing giver en mulighed for at se, om sider, der anmodes om, resulterer i en fejl. Når sporing er aktiveret, tilføjes en ekstra side kaldet trace.axd til applikationen. (Se billedet nedenfor). Denne side er knyttet til ansøgningen. Denne side viser alle anmodninger og deres status.

Lad os se på, hvordan du aktiverer sporing af en applikation.

Trin 1) Lad os arbejde på vores 'DemoApplication'. Åbn web.config-filen fra Solution Explorer.

Trin 2) Føj nedenstående kodelinje til Web.config-filen.

Sporingserklæringen bruges til at aktivere sporing af applikationen.

  • 'RequestLimit' i sporingserklæring bruges. Det specificerer antallet af sideanmodninger, der skal spores.
  • I vores eksempel giver vi en grænse på 40. Vi giver en grænse, fordi en højere værdi vil forringe applikationens ydeevne.

Kør "demoapplikation" i Visual Studio.

Produktion:-

Hvis du nu gennemser URL'en - http: // localhost: 53003 / trace.axd , vil du se oplysningerne for hver anmodning. Her kan du se, om der opstår fejl i en applikation. Følgende typer oplysninger vises på ovenstående side

  1. Tidspunktet for anmodningen om websiden.
  2. Navnet på den webside, der anmodes om.
  3. Statuskoden for webanmodningen. (statuskode på 200 betyder, at anmodningen er vellykket).
  4. Visningsoplysningerne, som du giver mulighed for at se flere detaljer om webanmodningen. Et eksempel på dette er vist nedenfor. En vigtig detaljeret information, der gives, er headeroplysningerne. Disse oplysninger viser, hvilke oplysninger der sendes i overskriften på hver webanmodning.

Sporing af sideniveau

Sidesporing viser alle generelle oplysninger om en webside, når den behandles. Dette er nyttigt til fejlfinding, hvis en side ikke fungerer af en eller anden grund.

Visual Studio giver detaljerede oplysninger om forskellige aspekter af siden. Oplysninger såsom tidspunktet for hver metode, der kaldes i webanmodningen. For eksempel, hvis din webapplikation har et præstationsproblem, kan disse oplysninger hjælpe med fejlfinding af problemet. Disse oplysninger vises, når applikationen kører i Visual Studio.

Lad os se på, hvordan du aktiverer sporing af en applikation på sideniveau.

Trin 1) Lad os arbejde på vores DemoApplication. Åbn filen demo.aspx fra Solution Explorer

Trin 2) Tilføj nedenstående kodelinje for at aktivere sidesporing. I sidedeklarationen skal du bare tilføje linjen Trace = "true". Denne kodelinje tillader sporing af sideniveau.

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

Nu når websiden Demo.aspx vises, får du en masse information om siden. Oplysninger såsom tidspunktet for hvert aspekt af sidens livscyklus vises på denne side.

Fejlhåndtering: Visning af en brugerdefineret fejlside

I ASP.Net kan du få brugerdefinerede fejlsider vist for brugerne. Hvis et program indeholder nogen form for fejl, viser en brugerdefineret side denne fejl for brugeren.

I vores eksempel skal vi først tilføje en HTML-side. Denne side viser en streng til brugeren "Vi undersøger problemet". Vi tilføjer derefter en fejlkode til vores demo.aspx-side, så fejlsiden vises.

Lad os følge nedenstående trin

Trin 1) Lad os arbejde på vores DemoApplication. Lad os tilføje en HTML-side til applikationen

  1. Højreklik på DemoApplication i Solution Explorer
  2. Vælg menupunktet 'Tilføj' -> HTML-side

Trin 2) I det næste trin skal vi give et navn til den nye HTML-side.

  1. Angiv navnet som 'ErrorPage'.
  2. Klik på knappen 'OK' for at fortsætte.

Trin 3) Errorpage åbnes automatisk i Visual Studio. Hvis du går til Solution Explorer, vil du se filen tilføjet.

Tilføj kodelinjen "Vi ser på problemet" til HTML-siden. Du behøver ikke at lukke HTML-filen, før du foretager ændringen i web.config-filen.

We are looking into the problem

Trin 4) Nu skal du foretage en ændring i filen web.config. Denne ændring vil meddele, at hver gang der opstår en fejl i applikationen, skal den tilpassede fejlside vises.

Tagget 'customErrors' gør det muligt at definere en side med brugerdefineret fejl. StandardRedirect-ejendommen er indstillet til navnet på vores brugerdefinerede fejls side oprettet i det foregående trin.

Trin 5) Lad os nu tilføje en defekt kode til siden demo.aspx.cs. Åbn denne side ved at dobbeltklikke på filen i Solution Explorer

Føj nedenstående kode til filen Demo.aspx.cs.

  • Disse kodelinjer er designet til at læse linjerne i en tekst fra en fil.
  • Filen formodes at være placeret i D-drevet med navnet 'Eksempel.txt.'
  • Men i vores situation eksisterer denne fil ikke rigtig. Så denne kode vil resultere i en fejl, når applikationen kører.

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

Udfør nu koden i Visual Studio, og du skal få nedenstående output.

Produktion:-

Ovenstående side viser, at der blev udløst en fejl i applikationen. Som et resultat vises siden Error.html for brugeren.

ASP.NET Uhåndteret undtagelse

Selv i de bedste scenarier kan der være tilfælde af fejl, der bare ikke forudses.

Antag, hvis en bruger gennemsøger den forkerte side i applikationen. Dette er noget, der ikke kan forudsiges. I sådanne tilfælde kan ASP.Net omdirigere brugeren til errorpage.html.

Lad os se et eksempel på dette.

  • Vi skal bruge vores samme 'DemoApplication', som har Errorpage.html.
  • Og vi vil forsøge at se en webside, der ikke findes i vores applikation.
  • Vi skal omdirigeres til vores ErrorPage.html-side i dette tilfælde. Lad os se trinene til at opnå dette.

Trin 1) Lad os arbejde på vores DemoApplication. Åbn filen Global.asax.cs fra Solution Explorer

BEMÆRK : Den globale.asax.cs-fil bruges til at tilføje kode, der vil være gældende på alle sider i applikationen.

Trin 2) Føj nedenstående kodelinje til global.asax.cs. Disse linjer vil blive brugt til at kontrollere for fejl og vise siden ErrorPage.html i overensstemmelse hermed.

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

Kode Forklaring: -

  1. Den første linje er Application_Error begivenhedshåndterer. Denne begivenhed kaldes, når der opstår en fejl i et program. Bemærk, at begivenhedsnavnet skal være 'Application_Error'. Og parametrene skal være som vist ovenfor.
  2. Dernæst definerer vi et objekt af klassetypen HttpException. Dette er et standardobjekt, der indeholder alle detaljerne i fejlen. Vi bruger derefter metoden Server.GetLastError til at få alle detaljer om den sidste fejl, der opstod i applikationen.
  3. Vi kontrollerer derefter, om fejlkoden for den sidste fejl er 404. (Fejlkoden 404 er standardkoden, der returneres, når en bruger gennemsøger til en side, der ikke findes). Vi overfører derefter brugeren til siden ErrorPage.html, hvis fejlkoden stemmer overens.

Kør nu koden i Visual Studio, og du skal få nedenstående output

Produktion:-

Gennemse siden http: // localhost: 53003 / Demo1.aspx . Husk, at Demo1.aspx ikke findes i vores applikation. Du får derefter nedenstående output.

Ovenstående side viser, at der blev udløst en fejl i applikationen. Som et resultat vises siden Error.html for brugeren.

ASP.NET Fejl ved logning

Ved at logge applikationsfejl hjælper det udvikleren med at debugge og løse fejlen på et senere tidspunkt. ASP.Net har mulighed for at logge fejl. Dette gøres i filen Global.asax.cs, når fejlen er fanget. Under optagelsesprocessen kan fejlmeddelelsen skrives i en logfil.

Lad os se et eksempel på dette.

  • Vi skal bruge vores samme DemoApplication, som har Errorpage.html.
  • Og vi vil forsøge at se en webside, der ikke findes i vores applikation.
  • Vi skal omdirigeres til vores ErrorPage.html-side i dette tilfælde.
  • Og på samme tid skriver vi fejlmeddelelsen til en logfil. Lad os se trinene til at opnå dette.

Trin 1) Lad os arbejde på vores DemoApplication. Åbn filen Global.asax.cs fra Solution Explorer

Trin 2) Føj nedenstående kodelinje til global.asax.cs. Det kontrollerer for fejl og viser siden ErrorPage.html i overensstemmelse hermed. Samtidig vil vi logge fejloplysningerne i en fil kaldet 'AllErrors.txt.' I vores eksempel skriver vi kode for at få denne fil oprettet på D-drevet.

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

Kode Forklaring: -

  1. Den første linje er at få selve fejlen ved hjælp af metoden 'Server.GetLastError'. Dette tildeles derefter variablen 'exc'.
  2. Vi opretter derefter en tom strengvariabel kaldet 'str'. Vi får den faktiske fejlmeddelelse ved hjælp af egenskaben 'exc.Message'. Egenskaben exc.Message har den nøjagtige meddelelse for enhver fejl, der opstår, når applikationen kører. Dette tildeles derefter strengvariablen.
  3. Dernæst definerer vi filen kaldet 'AllErrrors.txt.' Det er her, alle fejlmeddelelser vil blive sendt. Vi skriver strengen 'str', som indeholder alle fejlmeddelelser til denne fil.
  4. Endelig overfører vi brugeren til filen ErrorPage.html.

Produktion:-

Gennemse siden http: // localhost: 53003 / Demo1.aspx . Husk, at Demo1.aspx ikke findes i vores applikation. Du får derefter nedenstående output.

Og på samme tid, hvis du åbner filen 'AllErrors.txt', vil du se nedenstående information.

Fejlmeddelelsen kan derefter videregives til udvikleren på et senere tidspunkt til fejlfindingsformål.

Resumé

  • ASP.Net har mulighed for at udføre fejlfinding og fejlhåndtering.
  • Fejlfinding kan opnås ved at tilføje breakpoints til koden. Man kører derefter indstillingen Start med debugging i Visual Studio for at debugge koden.
  • Sporing er muligheden for at give mere information, mens applikationen kører. Dette kan gøres på applikations- eller sideniveau.
  • På sideniveau skal koden Trace = true tilføjes til sidedirektivet.
  • På applikationsniveau oprettes en ekstra side kaldet Trace.axd til applikationen. Dette giver alle de nødvendige sporingsoplysninger.