Asp.Net puslapio lygio sekimas, derinimas, klaidų tvarkymas (pavyzdys)

Turinys:

Anonim

Bet kurioje programoje klaidos turi atsirasti kūrimo proceso metu. Svarbu mokėti atrasti klaidas ankstyvame etape.

„Visual Studio“ tai galima padaryti ASP.Net programoms. „Visual Studio“ naudojama derinant ir turi ASP.Net klaidų valdymo metodus.

Šioje pamokoje sužinosite

  • Kas yra derinimas ASP.NET?
  • Kas yra sekimas ASP.NET?
  • Puslapio lygio sekimas
  • Klaidų tvarkymas: rodomas tinkintos klaidos puslapis
  • ASP.NET neapdorota išimtis
  • ASP.NET klaidos registruojant

Kas yra derinimas ASP.NET?

Derinimas yra lūžio taškų pridėjimo prie programos procesas. Šie lūžio taškai naudojami sustabdyti vykdomos programos vykdymą. Tai leidžia kūrėjui suprasti, kas vyksta programoje tam tikru laiko momentu.

Paimkime programos pavyzdį. Programa vartotojui pateikia eilutę „Mes deriname“. Tarkime, kai paleidžiame programą, dėl kokių nors priežasčių eilutė nerodoma. Norėdami nustatyti problemą, turime pridėti lūžio tašką. Mes galime pridėti lūžio tašką prie kodo eilutės, kurioje rodoma eilutė. Šis lūžio taškas pristabdys programos vykdymą. Šiuo metu programuotojas gali pamatyti, kas galbūt negerai. Programuotojas atitinkamai ištaiso programą.

Šiame pavyzdyje mes naudosime mūsų „DemoApplication“, sukurtą ankstesniuose skyriuose. Kitame pavyzdyje pamatysime

  • Kaip priversti demonstracinę programą rodyti eilutę.
  • Kaip pridėti pertraukos taškus prie programos.
  • Kaip derinti programą naudojant šią pertraukos tašką.

1 žingsnis) Pirmiausia įsitikinkime, kad „Visual Studio“ yra atidaryta mūsų interneto programa. Įsitikinkite, kad „Visual Studio“ yra atidaryta „DemoApplication“.

2 žingsnis) Dabar atidarykite failą Demo.aspx.cs ir pridėkite žemiau esančią kodo eilutę.

  • Mes tik pridedame kodo eilutę „Response“. Parašykite, kad būtų rodoma eilutė.
  • Taigi, kai programa vykdoma, ji turėtų rodyti eilutę „Mes deriname“ interneto naršyklėje.

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

3 žingsnis) Dabar pridėkime lūžio tašką. Pertraukos taškas yra „Visual Studio“ taškas, kuriame norite sustabdyti programos vykdymą.

  1. Norėdami pridėti pertraukos tašką, turite spustelėti stulpelį, kuriame norite įterpti pertraukos tašką. Taigi mūsų atveju norime, kad mūsų programa sustotų kodo eilutėje „Response.Write“. Norėdami pridėti pertraukos tašką, nereikia pridėti jokios komandos. Jums tereikia spustelėti eilutę, ant kurios norite pridėti lūžio tašką.
  2. Tai padarę pastebėsite, kad kodas pažymimas raudonai. Be to, stulpelyje šalia kodo eilutės atsiranda raudonas burbulas.

Pastaba: - Programoje galite pridėti kelis pertraukimo taškus

4 žingsnis) Dabar turite paleisti programą naudodami derinimo režimą. „Visual Studio“ pasirinkite meniu parinktį Derinti-> Pradėti derinti.

Išvestis: -

Teisingai atlikus visus veiksmus, programos vykdymas nutrūks. „Visual Studio“ eis į lūžio tašką ir geltonai pažymės kodo eilutę.

Dabar, jei programuotojas mano, kad kodas neteisingas, vykdymą galima sustabdyti. Tada kodą galima atitinkamai modifikuoti. Norėdami tęsti programos vykdymą, programuotojas turi spustelėti klaviatūros mygtuką F5.

Kas yra sekimas ASP.NET?

Taikant programą galima sužinoti, ar dėl kokių nors puslapių reikalaujama klaidų. Įjungus sekimą, prie programos pridedamas papildomas puslapis, vadinamas trace.axd. (Žr. Paveikslėlį žemiau). Šis puslapis pridedamas prie programos. Šiame puslapyje bus rodomos visos užklausos ir jų būsena.

Pažiūrėkime, kaip įgalinti programos sekimą.

1 žingsnis) Dirbkime su savo „DemoApplication“. Atidarykite „web.config“ failą iš „Solution Explorer“.

2 žingsnis) Įtraukite žemiau esančią kodo eilutę į failą „Web.config“.

Pėdsakų sakinys naudojamas norint įgalinti programos atsekimą.

  • Naudojamas „requestLimit“ pėdsakų sakinyje. Jis nurodo puslapių užklausų, kurias reikia atsekti, skaičių.
  • Mūsų pavyzdyje mes pateikiame ribą 40. Mes suteikiame ribą, nes didesnė vertė pablogins programos veikimą.

Paleiskite „demoapplication“ „Visual Studio“.

Išvestis: -

Jei dabar naršote URL - http: // localhost: 53003 / trace.axd , pamatysite informaciją apie kiekvieną užklausą. Čia galite pamatyti, ar programoje nėra klaidų. Ankstesniame puslapyje pateikiama šių tipų informacija

  1. Tinklalapio užklausos laikas.
  2. Prašomo tinklalapio pavadinimas.
  3. Žiniatinklio užklausos būsenos kodas. (būsenos kodas 200 reiškia, kad užklausa yra sėkminga).
  4. Žiūrėti išsamią informaciją, kurią leidžiate peržiūrėti daugiau informacijos apie žiniatinklio užklausą. To pavyzdys pateiktas žemiau. Viena svarbi išsami informacija yra antraštės informacija. Ši informacija parodo, kokia informacija siunčiama kiekvienos žiniatinklio užklausos antraštėje.

Puslapio lygio sekimas

Puslapio sekimas rodo visą bendrą informaciją apie tinklalapį, kai jis apdorojamas. Tai naudinga derinant, jei puslapis neveikia dėl kokių nors priežasčių.

„Visual Studio“ pateiks išsamią informaciją apie įvairius puslapio aspektus. Informacija, pvz., Kiekvieno metodo, kuris iškviečiamas žiniatinklio užklausoje, laikas. Pvz., Jei jūsų žiniatinklio programoje kyla problemų dėl našumo, ši informacija gali padėti išspręsti problemą. Ši informacija rodoma, kai programa veikia „Visual Studio“.

Pažiūrėkime, kaip įgalinti programos sekimą puslapio lygiu.

1 žingsnis) Dirbkime su „DemoApplication“. Atidarykite demo.aspx failą iš „Solution Explorer“

2 žingsnis. Norėdami įgalinti puslapio sekimą, pridėkite žemiau esančią kodo eilutę. Puslapio deklaracijoje tiesiog pridėkite eilutę Trace = "true". Ši kodo eilutė leis atsekti puslapio lygį.

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

Dabar, kai bus rodomas tinklalapis Demo.aspx, gausite daug informacijos apie puslapį. Šiame puslapyje pateikiama tokia informacija kaip kiekvieno puslapio gyvavimo ciklo aspekto laikas.

Klaidų tvarkymas: rodomas tinkintos klaidos puslapis

ASP.Net vartotojams galite rodyti pasirinktinius klaidų puslapius. Jei programoje yra kokių nors klaidų, pasirinktinis puslapis parodys šią klaidą vartotojui.

Savo pavyzdyje pirmiausia ketiname pridėti HTML puslapį. Šiame puslapyje vartotojui bus rodoma eilutė „Mes ieškome problemos“. Tada mes pridėsime klaidos kodą į savo demo.aspx puslapį, kad būtų parodytas klaidos puslapis.

Atlikime žemiau nurodytus veiksmus

1 žingsnis) Dirbkime su „DemoApplication“. Pridėkime prie programos HTML puslapį

  1. Dešiniuoju pelės mygtuku spustelėkite „DemoApplication“, esančią „Solution Explorer“
  2. Pasirinkite meniu parinktį „Pridėti“ -> HTML puslapis

2 žingsnis) Kitame žingsnyje turime pateikti pavadinimą naujam HTML puslapiui.

  1. Nurodykite pavadinimą kaip „ErrorPage“.
  2. Norėdami tęsti, spustelėkite mygtuką „Gerai“.

3 žingsnis . Klaidų puslapis bus automatiškai atidarytas „Visual Studio“. Jei eisite į „Solution Explorer“, pamatysite pridėtą failą.

Pridėkite kodo eilutę „Mes ieškome problemos“ prie HTML puslapio. Prieš keisdami failą web.config, nereikia uždaryti HTML failo.

We are looking into the problem

4 žingsnis) Dabar turite pakeisti failą web.config. Atlikus šį pakeitimą bus pranešta, kad kai programoje įvyksta klaida, reikia rodyti pasirinktinės klaidos puslapį.

Žyma „customErrors“ leidžia apibrėžti pasirinktinį klaidos puslapį. Nuosavybė „defaultRedirect“ yra nustatyta kaip pasirinktinės klaidos puslapio, sukurto ankstesniame etape, pavadinimas.

5 žingsnis) Dabar pridėkime šiek tiek sugedusio kodo į puslapį demo.aspx.cs. Atidarykite šį puslapį dukart spustelėdami failą „Solution Explorer“

Įdėkite žemiau esantį kodą į failą Demo.aspx.cs.

  • Šios kodo eilutės yra skirtos nuskaityti failo teksto eilutes.
  • Manoma, kad failas yra D diske su pavadinimu „Example.txt“.
  • Tačiau mūsų situacijoje šios bylos iš tikrųjų nėra. Taigi šis kodas sukels klaidą paleidus programą.

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

Dabar vykdykite kodą „Visual Studio“ ir turėtumėte gauti žemiau pateiktą išvestį.

Išvestis: -

Ankstesniame puslapyje parodyta, kad programoje įvyko klaida. Todėl vartotojui rodomas puslapis Error.html.

ASP.NET neapdorota išimtis

Net esant geriausiems scenarijams, gali pasitaikyti klaidų, kurių tiesiog nematyti.

Tarkime, jei vartotojas naršo ne tą programos puslapį. To negalima numatyti. Tokiais atvejais ASP.Net gali nukreipti vartotoją į errorpage.html.

Pažiūrėkime apie tai pavyzdį.

  • Mes naudosime tą patį „DemoApplication“, kurio failas yra Errorpage.html.
  • Pabandysime peržiūrėti tinklalapį, kurio nėra mūsų programoje.
  • Tokiu atveju turėtume būti nukreipti į mūsų puslapį ErrorPage.html. Pažiūrėkime, kaip tai pasiekti.

1 žingsnis) Dirbkime su „DemoApplication“. Atidarykite failą Global.asax.cs iš „Solution Explorer“

PASTABA : failas global.asax.cs naudojamas pridėti kodą, kuris bus taikomas visuose programos puslapiuose.

2 žingsnis) Įtraukite žemiau esančią kodo eilutę į global.asax.cs. Šios eilutės bus naudojamos klaidoms patikrinti ir atitinkamai parodyti puslapį 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");}}}

Kodo paaiškinimas: -

  1. Pirmoji eilutė yra „Application_Error“ įvykių tvarkytuvas. Šis įvykis iškviečiamas, kai programoje įvyksta klaida. Atminkite, kad įvykio pavadinimas turi būti „Application_Error“. Parametrai turėtų būti tokie, kaip parodyta aukščiau.
  2. Toliau apibrėžiame klasės tipo „HttpException“ objektą. Tai yra standartinis objektas, kuriame bus visa išsami informacija apie klaidą. Tada mes naudojame „Server.GetLastError“ metodą, kad gautume visą informaciją apie paskutinę klaidą, įvykusią programoje.
  3. Tada mes patikriname, ar paskutinės klaidos klaidos kodas yra 404. (Klaidos kodas 404 yra standartinis kodas, grąžintas vartotojui naršant nerastame puslapyje). Tada perkeliame vartotoją į puslapį ErrorPage.html, jei klaidos kodas atitinka.

Dabar paleiskite kodą „Visual Studio“ ir turėtumėte gauti žemiau pateiktą išvestį

Išvestis: -

Naršykite puslapyje http: // localhost: 53003 / Demo1.aspx . Atminkite, kad „Demo1.aspx“ nėra mūsų programoje. Tada gausite žemiau pateiktą išvestį.

Ankstesniame puslapyje parodyta, kad programoje įvyko klaida. Todėl vartotojui rodomas puslapis Error.html.

ASP.NET klaidos registruojant

Registruodamas programos klaidas, kūrėjas gali vėliau derinti ir pašalinti klaidą. ASP.Net turi galimybę registruoti klaidas. Tai daroma faile Global.asax.cs, kai užfiksuojama klaida. Gavimo metu klaidos pranešimą galima įrašyti į žurnalo failą.

Pažiūrėkime apie tai pavyzdį.

  • Mes naudosime tą pačią „DemoApplication“, kurioje yra Errorpage.html.
  • Pabandysime peržiūrėti tinklalapį, kurio nėra mūsų programoje.
  • Tokiu atveju turėtume būti nukreipti į mūsų puslapį ErrorPage.html.
  • Tuo pačiu metu mes įrašysime klaidos pranešimą į žurnalo failą. Pažiūrėkime, kaip tai pasiekti.

1 žingsnis) Dirbkime su „DemoApplication“. Atidarykite failą Global.asax.cs iš „Solution Explorer“

2 žingsnis) Įtraukite žemiau esančią kodo eilutę į global.asax.cs. Jis patikrins, ar nėra klaidų, ir atitinkamai parodys puslapį ErrorPage.html. Taip pat tuo pačiu metu užregistruosime išsamią klaidos informaciją faile, vadinamame „AllErrors.txt“. Pavyzdžiui, mes parašysime kodą, kad šis failas būtų sukurtas D diske.

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

Kodo paaiškinimas: -

  1. Pirmoji eilutė yra gauti pačią klaidą naudojant „Server.GetLastError“ metodą. Tada jis priskiriamas kintamajam „exc“.
  2. Tada sukuriame tuščią eilutės kintamąjį, vadinamą „str“. Mes gauname tikrąjį klaidos pranešimą naudodami ypatybę „exc.Message“. Ypatybėje exc.Message bus tikslus pranešimas apie bet kokią klaidą, atsirandančią vykdant programą. Tada tai priskiriama eilutės kintamajam.
  3. Tada mes apibrėžiame failą pavadinimu "AllErrrors.txt". Čia bus išsiųsti visi klaidos pranešimai. Mes rašome eilutę „str“, kurioje yra visi klaidos pranešimai į šį failą.
  4. Galiausiai mes perkeliame vartotoją į failą ErrorPage.html.

Išvestis: -

Naršykite puslapyje http: // localhost: 53003 / Demo1.aspx . Atminkite, kad „Demo1.aspx“ nėra mūsų programoje. Tada gausite žemiau pateiktą išvestį.

Tuo pačiu metu, atidarę failą „AllErrors.txt“, pamatysite žemiau pateiktą informaciją.

Klaidos pranešimas vėliau gali būti perduotas kūrėjui derinimo tikslais.

Santrauka

  • ASP.Net turi galimybę derinti ir tvarkyti klaidas.
  • Derinimą galima pasiekti pridedant lūžio taškus prie kodo. Tada „Visual Studio“ paleidžiama parinktis Pradėti derinant, kad derintumėte kodą.
  • Tracing yra galimybė suteikti daugiau informacijos vykdant programą. Tai galima padaryti programos ar puslapio lygiu.
  • Puslapio lygiu prie puslapio direktyvos reikia pridėti kodą „Trace = true“.
  • Programos lygiu programai sukuriamas papildomas puslapis, vadinamas Trace.axd. Tai suteikia visą reikalingą informaciją apie atsekimą.