Asp.Net lapas līmeņa izsekošana, atkļūdošana, kļūdu apstrāde (piemērs)

Satura rādītājs:

Anonim

Jebkurā lietojumprogrammā kļūdas noteikti rodas izstrādes procesā. Ir svarīgi spēt atklāt kļūdas agrīnā stadijā.

Visual Studio to ir iespējams izdarīt ASP.Net lietojumprogrammām. Visual Studio tiek izmantota atkļūdošanai, un tai ir kļūdu apstrādes paņēmieni ASP.Net.

Šajā apmācībā jūs uzzināsiet

  • Kas ir atkļūdošana ASP.NET?
  • Kas ir izsekošana ASP.NET?
  • Lapas līmeņa izsekošana
  • Kļūdu apstrāde: Pielāgotas kļūdas lapas parādīšana
  • ASP.NET neapstrādāts izņēmums
  • ASP.NET kļūda reģistrējoties

Kas ir atkļūdošana ASP.NET?

Atkļūdošana ir lūzuma punktu pievienošana lietojumprogrammai. Šie pārtraukuma punkti tiek izmantoti, lai apturētu darbojošās programmas izpildi. Tas ļauj izstrādātājam saprast, kas notiek programmā noteiktā laika posmā.

Ņemsim programmas piemēru. Programma parāda virkni "Mēs atkļūdojam" lietotājam. Pieņemsim, ka, palaižot lietojumprogrammu, kāda iemesla dēļ virkne netiek parādīta. Lai identificētu problēmu, mums jāpievieno pārtraukuma punkts. Mēs varam pievienot pārtraukuma punktu koda rindai, kurā tiek parādīta virkne. Ar šo pārtraukuma punktu tiks apturēta programmas izpilde. Šajā brīdī programmētājs var redzēt, kas, iespējams, notiek nepareizi. Programmētājs attiecīgi izlabo programmu.

Šajā piemērā mēs izmantosim mūsu 'DemoApplication', kas tika izveidots iepriekšējās nodaļās. Nākamajā piemērā mēs to redzēsim

  • Kā panākt, lai demonstrācijas lietojumprogrammā tiktu parādīta virkne.
  • Kā lietojumprogrammai pievienot pārtraukuma punktus.
  • Kā atkļūdot lietojumprogrammu, izmantojot šo pārtraukuma punktu.

1. solis. Vispirms pārliecinieties, vai mūsu tīmekļa lietojumprogramma ir atvērta Visual Studio. Pārliecinieties, vai Visual Studio ir atvērta DemoApplication.

2. solis. Tagad atveriet failu Demo.aspx.cs un pievienojiet zemāk esošo koda rindiņu.

  • Mēs tikai pievienojam koda rindiņu Response. Uzrakstiet, lai parādītu virkni.
  • Tātad, kad lietojumprogramma tiek izpildīta, tai tīmekļa pārlūkprogrammā jāparāda virkne "Mēs atkļūdojam".

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

3. solis. Tagad pievienosim pārtraukuma punktu. Lūzuma punkts ir Visual Studio punkts, kurā vēlaties apturēt programmas izpildi.

  1. Lai pievienotu pārtraukuma punktu, jums jānoklikšķina uz kolonnas, kurā vēlaties ievietot pārtraukuma punktu. Tāpēc mūsu gadījumā mēs vēlamies, lai mūsu programma apstātos koda rindā "Response.Write". Lai pievienotu pārtraukuma punktu, jums nav jāpievieno komanda. Jums vienkārši jānoklikšķina uz līnijas, uz kuras vēlaties pievienot pārtraukuma punktu.
  2. Kad tas būs izdarīts, pamanīsit, ka kods tiek atzīmēts ar sarkanu. Kolonnā blakus koda rindai parādās sarkans burbulis.

Piezīme: - Lietojumprogrammā varat pievienot vairākus pārtraukuma punktus

4. solis. Tagad jums jāpalaiž lietojumprogramma, izmantojot atkļūdošanas režīmu. Programmā Visual Studio izvēlieties izvēlnes opciju Atkļūdošana-> Sākt atkļūdošanu.

Izeja: -

Pareizi veicot visas darbības, programmas izpilde tiks pārtraukta. Visual Studio dosies uz pārtraukuma punktu un koda līniju atzīmēs dzeltenā krāsā.

Tagad, ja programmētājs uzskata, ka kods ir nepareizs, izpildi var apturēt. Pēc tam kodu var attiecīgi mainīt. Lai turpinātu programmas darbību, programmētājam ir jānoklikšķina uz tastatūras pogas F5.

Kas ir izsekošana ASP.NET?

Lietojumprogrammu izsekošana ļauj redzēt, vai kādā no pieprasītajām lapām ir kļūda. Kad izsekošana ir iespējota, lietojumprogrammai tiek pievienota papildu lapa ar nosaukumu trace.axd. (Skatīt attēlu zemāk). Šī lapa ir pievienota lietojumprogrammai. Šajā lapā tiks parādīti visi pieprasījumi un to statuss.

Apskatīsim, kā iespējot izsekošanu lietojumprogrammai.

1. solis. Strādāsim ar mūsu “DemoApplication”. Solution Explorer atveriet failu web.config.

2. solis. Pievienojiet zemāk redzamo koda rindiņu failam Web.config.

Paziņojums par izsekošanu tiek izmantots, lai iespējotu lietojumprogrammas izsekošanu.

  • Tiek izmantots “requestLimit” izsekošanas paziņojumā. Tas norāda izsekojamo lapu pieprasījumu skaitu.
  • Šajā piemērā mēs piešķiram ierobežojumu 40. Mēs piešķiram ierobežojumu, jo lielāka vērtība pasliktinās lietojumprogrammas veiktspēju.

Palaidiet "demoapplication" Visual Studio.

Izeja: -

Ja tagad pārlūkojat vietrādi URL - http: // localhost: 53003 / trace.axd , redzēsiet informāciju par katru pieprasījumu. Šeit jūs varat redzēt, vai lietojumprogrammā nav kļūdu. Iepriekš minētajā lapā tiek parādīti šādi informācijas veidi

  1. Tīmekļa lapas pieprasīšanas laiks.
  2. Pieprasītās tīmekļa lapas nosaukums.
  3. Tīmekļa pieprasījuma statusa kods. (statusa kods 200 nozīmē, ka pieprasījums ir veiksmīgs).
  4. Skatīt informāciju, kuru atļaujat, lai skatītu sīkāku informāciju par tīmekļa pieprasījumu. Tā piemērs ir parādīts zemāk. Svarīga sniegta detalizēta informācija ir galvenes informācija. Šī informācija parāda, kāda informācija tiek nosūtīta katra tīmekļa pieprasījuma galvenē.

Lapas līmeņa izsekošana

Lapu izsekošana parāda visu vispārīgo informāciju par tīmekļa lapu, kad tā tiek apstrādāta. Tas ir noderīgi atkļūdošanā, ja lapa kādu iemeslu dēļ nedarbojas.

Visual Studio sniegs detalizētu informāciju par dažādiem lapas aspektiem. Informācija, piemēram, laiks katrai tīmekļa pieprasījumā izsauktai metodei. Piemēram, ja jūsu tīmekļa lietojumprogrammai ir problēmas ar veiktspēju, šī informācija var palīdzēt atkļūdot problēmu. Šī informācija tiek parādīta, kad programma Visual Studio darbojas.

Apskatīsim, kā iespējot lietojumprogrammas izsekošanu lapas līmenī.

1. solis. Strādāsim ar mūsu DemoApplication. Solution Explorer atveriet demo.aspx failu

2. solis. Pievienojiet zemāk esošo koda rindiņu, lai iespējotu lapu izsekošanu. Lapas deklarācijā vienkārši pievienojiet rindu Trace = "true". Šī koda rindiņa ļaus izsekot lapas līmenim.

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

Tagad, kad tiek parādīta tīmekļa lapa Demo.aspx, jūs saņemsiet daudz informācijas par lapu. Šajā lapā tiek parādīta tāda informācija kā laiks katram lapas dzīves cikla aspektam.

Kļūdu apstrāde: Pielāgotas kļūdas lapas parādīšana

Programmā ASP.Net lietotājiem var tikt parādītas pielāgotas kļūdu lapas. Ja lietojumprogrammā ir kāda veida kļūda, pielāgotā lapa parādīs šo kļūdu lietotājam.

Šajā piemērā mēs vispirms pievienosim HTML lapu. Šajā lapā lietotājam tiks parādīta virkne "Mēs meklējam problēmu". Pēc tam mēs pievienosim kļūdas kodu mūsu demo.aspx lapai, lai tiktu parādīta kļūdas lapa.

Izpildīsim tālāk minētās darbības

1. solis. Strādāsim ar mūsu DemoApplication. Pievienosim lietojumprogrammai HTML lapu

  1. Ar peles labo pogu noklikšķiniet uz DemoApplication Solution Explorer
  2. Izvēlieties izvēlnes opciju 'Pievienot' -> HTML lapa

2. solis. Nākamajā solī mums jānorāda nosaukums jaunajai HTML lapai.

  1. Norādiet nosaukumu kā “ErrorPage”.
  2. Lai turpinātu, noklikšķiniet uz pogas Labi.

3. darbība . Kļūdu lapa tiks automātiski atvērta Visual Studio. Ja dodaties uz Solution Explorer, redzēsiet pievienoto failu.

Pievienojiet HTML lapai koda rindiņu "Mēs meklējam problēmu". Pirms izmaiņu veikšanas failā web.config jums nav jāaizver HTML fails.

We are looking into the problem

4. solis) Tagad failā web.config ir jāveic izmaiņas. Šīs izmaiņas paziņos, ka ikreiz, kad lietojumprogrammā rodas kļūda, ir jāparāda pielāgotās kļūdas lapa.

Tags “customErrors” ļauj definēt pielāgotas kļūdas lapu. Rekvizīts defaultRedirect ir iestatīts uz mūsu pielāgotās kļūdas lapas nosaukumu, kas izveidota iepriekšējā darbībā.

5. solis. Tagad pievienosim kādu kļūdainu kodu lapai demo.aspx.cs. Atveriet šo lapu, veicot dubultklikšķi uz faila Solution Explorer

Pievienojiet zemāk redzamo kodu failam Demo.aspx.cs.

  • Šīs koda rindas ir paredzētas teksta rindiņu nolasīšanai no faila.
  • Paredzams, ka fails atrodas D diskā ar nosaukumu “Example.txt”.
  • Bet mūsu situācijā šī datne patiesībā nepastāv. Tātad šis kods radīs kļūdu, palaižot lietojumprogrammu.

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

Tagad izpildiet kodu Visual Studio, un jums vajadzētu iegūt zemāk redzamo izvadi.

Izeja: -

Iepriekšējā lapa parāda, ka lietojumprogrammā tika aktivizēta kļūda. Tā rezultātā lapa Error.html tiek parādīta lietotājam.

ASP.NET neapstrādāts izņēmums

Pat labākajos scenārijos var būt kļūdas, kuras vienkārši nav paredzētas.

Pieņemsim, ja lietotājs pārlūko nepareizu lietojumprogrammas lapu. Tas ir kaut kas, ko nevar paredzēt. Šādos gadījumos ASP.Net var novirzīt lietotāju uz errorpage.html.

Apskatīsim piemēru par to.

  • Mēs izmantosim to pašu “DemoApplication”, kuras fails ir Errorpage.html.
  • Mēs centīsimies apskatīt tīmekļa lapu, kuras mūsu lietojumprogrammā nav.
  • Šajā gadījumā mūs vajadzētu novirzīt uz mūsu lapu ErrorPage.html. Apskatīsim soļus, kā to panākt.

1. solis. Strādāsim ar mūsu DemoApplication. Solution Explorer atveriet failu Global.asax.cs

PIEZĪME : Globālo.asax.cs failu izmanto, lai pievienotu kodu, kas būs piemērots visām lietojumprogrammas lapām.

2. solis. Pievienojiet zemāk redzamo koda rindiņu vietnei global.asax.cs. Šīs rindas tiks izmantotas, lai pārbaudītu kļūdas un attiecīgi parādītu lapu ErrorPage.html.

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

Koda skaidrojums: -

  1. Pirmā rinda ir notikumu apstrādes programma Application_Error. Šis notikums tiek izsaukts ikreiz, kad lietojumprogrammā rodas kļūda. Ņemiet vērā, ka notikuma nosaukumam ir jābūt “Application_Error”. Parametriem jābūt tādiem, kā parādīts iepriekš.
  2. Tālāk mēs definējam klases tipa HttpException objektu. Šis ir standarta objekts, kurā tiks glabāta visa informācija par kļūdu. Pēc tam mēs izmantojam metodi Server.GetLastError, lai iegūtu visu informāciju par pēdējo kļūdu, kas radusies lietojumprogrammā.
  3. Pēc tam mēs pārbaudām, vai pēdējās kļūdas kļūdas kods ir 404. (Kļūdas kods 404 ir standarta kods, kas tiek atgriezts, kad lietotājs pārlūko lapu, kas nav atrasta). Pēc tam mēs pārsūtām lietotāju uz lapu ErrorPage.html, ja kļūdas kods atbilst.

Tagad palaidiet kodu Visual Studio, un jums vajadzētu iegūt zemāk esošo izvadi

Izeja: -

Pārlūkojiet lapu http: // localhost: 53003 / Demo1.aspx . Atcerieties, ka Demo1.aspx mūsu lietojumprogrammā nepastāv. Pēc tam jūs iegūsiet zemāk redzamo rezultātu.

Iepriekšējā lapa parāda, ka lietojumprogrammā tika aktivizēta kļūda. Tā rezultātā lapa Error.html tiek parādīta lietotājam.

ASP.NET kļūda reģistrējoties

Reģistrējot lietojumprogrammas kļūdas, tas palīdz izstrādātājam atkļūdot un novērst kļūdu vēlāk. ASP.Net ir iespēja reģistrēt kļūdas. Tas tiek izdarīts failā Global.asax.cs, kad kļūda tiek notverta. Uztveršanas laikā kļūdas ziņojumu var ierakstīt žurnāla failā.

Apskatīsim piemēru par to.

  • Mēs izmantosim to pašu DemoApplication, kurai ir Errorpage.html.
  • Mēs centīsimies apskatīt tīmekļa lapu, kuras mūsu lietojumprogrammā nav.
  • Šajā gadījumā mūs vajadzētu novirzīt uz mūsu lapu ErrorPage.html.
  • Tajā pašā laikā mēs ierakstīsim kļūdas ziņojumu žurnāla failā. Apskatīsim soļus, kā to panākt.

1. solis. Strādāsim ar mūsu DemoApplication. Solution Explorer atveriet failu Global.asax.cs

2. solis. Pievienojiet zemāk redzamo koda rindiņu vietnei global.asax.cs. Tas pārbaudīs kļūdas un attiecīgi parādīs lapu ErrorPage.html. Tajā pašā laikā mēs reģistrēsim informāciju par kļūdu failā ar nosaukumu AllErrors.txt. Piemēram, mēs rakstīsim kodu, lai šis fails tiktu izveidots D diskā.

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

Koda skaidrojums: -

  1. Pirmā rinda ir iegūt pašu kļūdu, izmantojot metodi “Server.GetLastError”. Pēc tam to piešķir mainīgajam “exc”.
  2. Pēc tam mēs izveidojam tukšu virknes mainīgo ar nosaukumu “str”. Mēs saņemam faktisko kļūdas ziņojumu, izmantojot rekvizītu “exc.Message”. Īpašumā exc.Message būs precīzs ziņojums par visām kļūdām, kas rodas, palaižot lietojumprogrammu. Pēc tam tas tiek piešķirts virknes mainīgajam.
  3. Pēc tam mēs definējam failu ar nosaukumu "AllErrrors.txt". Šeit tiks nosūtīti visi kļūdu ziņojumi. Mēs rakstām virkni 'str', kurā ir visi kļūdas ziņojumi šajā failā.
  4. Visbeidzot, mēs pārsūtām lietotāju uz failu ErrorPage.html.

Izeja: -

Pārlūkojiet lapu http: // localhost: 53003 / Demo1.aspx . Atcerieties, ka Demo1.aspx mūsu lietojumprogrammā nepastāv. Pēc tam jūs iegūsiet zemāk redzamo rezultātu.

Tajā pašā laikā, atverot failu AllErrors.txt, tiks parādīta tālāk sniegtā informācija.

Kļūdas ziņojumu vēlāk var nodot izstrādātājam atkļūdošanas nolūkos.

Kopsavilkums

  • ASP.Net ir iespēja veikt atkļūdošanu un kļūdu apstrādi.
  • Atkļūdošanu var panākt, kodam pievienojot pārtraukuma punktus. Pēc tam Visual Studio palaiž opciju Sākt ar atkļūdošanu, lai atkļūdotu kodu.
  • Izsekošana ir iespēja sniegt vairāk informācijas, palaižot lietojumprogrammu. To var izdarīt lietojumprogrammas vai lapas līmenī.
  • Lapas līmenī lapas direktīvai jāpievieno kods Trace = true.
  • Lietojumprogrammas līmenī lietojumprogrammai tiek izveidota papildu lapa ar nosaukumu Trace.axd. Tas nodrošina visu nepieciešamo izsekošanas informāciju.