Asp.Net-sivutason jäljitys, virheenkorjaus, virhekäsittely (esimerkki)

Sisällysluettelo:

Anonim

Kaikissa sovelluksissa virheitä esiintyy varmasti kehitysprosessin aikana. On tärkeää pystyä havaitsemaan virheet varhaisessa vaiheessa.

Visual Studiossa tämä on mahdollista tehdä ASP.Net-sovelluksille. Visual Studiota käytetään virheenkorjaukseen, ja sillä on virheenhallintatekniikoita ASP.Net: lle.

Tässä opetusohjelmassa opit-

  • Mikä on virheenkorjaus ASP.NET: ssä?
  • Mitä jäljitys on ASP.NET: ssä?
  • Sivutason jäljitys
  • Virheiden käsittely: Mukautetun virhesivun näyttäminen
  • ASP.NET käsittelemätön poikkeus
  • ASP.NET-virhe kirjautuessa

Mikä on virheenkorjaus ASP.NET: ssä?

Virheenkorjaus on katkaisupisteiden lisääminen sovellukseen. Näitä katkaisupisteitä käytetään keskeyttämään käynnissä olevan ohjelman suorittaminen. Tämän avulla kehittäjä voi ymmärtää, mitä ohjelmassa tapahtuu tietyllä ajankohdalla.

Otetaan esimerkki ohjelmasta. Ohjelma näyttää merkkijonon "Debugging" käyttäjälle. Oletetaan, että kun suoritamme sovellusta, merkkijono ei jostain syystä näy. Ongelman tunnistamiseksi meidän on lisättävä katkaisupiste. Voimme lisätä katkaisupisteen koodiriville, joka näyttää merkkijonon. Tämä katkaisupiste keskeyttää ohjelman suorittamisen. Tässä vaiheessa ohjelmoija voi nähdä, mikä on mahdollisesti menossa pieleen. Ohjelmoija korjaa ohjelman vastaavasti.

Tässä esimerkissä käytämme aikaisemmissa luvuissa luotua 'DemoApplication' -ohjelmaamme. Seuraavassa esimerkissä näemme

  • Kuinka saada demosovellus näyttämään merkkijono.
  • Katkaisupisteiden lisääminen sovellukseen.
  • Sovelluksen virheenkorjaus tällä katkaisupisteellä.

Vaihe 1) Varmista ensin, että verkkosovelluksemme on auki Visual Studiossa. Varmista, että DemoApplication on auki Visual Studiossa.

Vaihe 2) Avaa nyt Demo.aspx.cs-tiedosto ja lisää alla oleva koodirivi.

  • Lisäämme vain koodirivin Response.Write merkkijonon näyttämiseksi.
  • Joten kun sovellus suorittaa, sen pitäisi näyttää merkkijono "Olemme debugging" verkkoselaimessa.

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

Vaihe 3) Lisää nyt katkaisupiste. Katkaisupiste on Visual Studion kohta, jossa haluat ohjelman suorittamisen loppuvan.

  1. Jos haluat lisätä katkaisupisteen, sinun on napsautettava saraketta, johon haluat lisätä katkaisupisteen. Joten meidän tapauksessamme haluamme, että ohjelmamme pysähtyy koodiriville "Response.Write". Sinun ei tarvitse lisätä komentoa katkaisupisteen lisäämiseksi. Sinun tarvitsee vain napsauttaa riviä, johon haluat lisätä katkaisupisteen.
  2. Kun tämä on tehty, huomaat, että koodi merkitään punaisella. Koodirivin viereiseen sarakkeeseen tulee myös punainen kupla.

Huomaa: - Voit lisätä useita katkaisupisteitä sovellukseen

Vaihe 4) Nyt sinun on suoritettava sovelluksesi käyttämällä virheenkorjaustilaa. Valitse Visual Studiossa valikkokohta Debug-> Start Debugging.

Lähtö: -

Kun suoritat kaikki vaiheet oikein, ohjelman suorittaminen keskeytyy. Visual Studio siirtyy katkaisupisteeseen ja merkitsee koodirivin keltaisella.

Jos ohjelmoija katsoo, että koodi on väärä, suoritus voidaan lopettaa. Koodia voidaan sitten muuttaa vastaavasti. Jatkaaksesi ohjelman jatkamista, ohjelmoijan on napsautettava näppäimistön F5-painiketta.

Mitä jäljitys on ASP.NET: ssä?

Sovellusten jäljityksen avulla voidaan nähdä, johtavatko jotkut pyydetyt sivut virheeseen. Kun jäljitys on käytössä, sovellukseen lisätään ylimääräinen sivu nimeltä trace.axd. (Katso alla oleva kuva). Tämä sivu on liitetty hakemukseen. Tämä sivu näyttää kaikki pyynnöt ja niiden tilan.

Katsotaanpa, miten seuranta otetaan käyttöön sovelluksessa.

Vaihe 1) Työskentelemme 'DemoApplication' -sivustomme parissa. Avaa web.config-tiedosto Solution Explorerista.

Vaihe 2) Lisää alla oleva koodirivi Web.config-tiedostoon.

Jäljityslauseketta käytetään sovelluksen jäljittämisen mahdollistamiseen.

  • Käytetään jäljityslausekkeen 'requestLimit'. Se määrittää jäljitettävien sivupyyntöjen määrän.
  • Esimerkissämme annamme rajan 40. Annamme rajan, koska suurempi arvo heikentää sovelluksen suorituskykyä.

Suorita "demoapplication" Visual Studiossa.

Lähtö: -

Jos selaat nyt URL-osoitteeseen - http: // localhost: 53003 / trace.axd , näet kunkin pyynnön tiedot. Täältä näet, esiintyykö sovelluksessa virheitä. Seuraavan tyyppiset tiedot näkyvät yllä olevalla sivulla

  1. Verkkosivupyynnön aika.
  2. Pyydettävän verkkosivun nimi.
  3. Verkkopyynnön tilakoodi. (tilakoodi 200 tarkoittaa, että pyyntö onnistuu).
  4. Näytä tiedot, jonka sallit nähdäksesi lisätietoja verkkopyynnöstä. Esimerkki tästä on esitetty alla. Yksi tärkeä yksityiskohtainen tieto on otsikkotiedot. Nämä tiedot osoittavat, mitä tietoja lähetetään kunkin verkkopyynnön otsikossa.

Sivutason jäljitys

Sivun jäljitys näyttää kaikki yleiset tiedot verkkosivusta, kun sitä käsitellään. Tästä on hyötyä virheenkorjauksessa, jos sivu ei toimi jostain syystä.

Visual Studio tarjoaa yksityiskohtaista tietoa sivun eri näkökohdista. Tiedot, kuten jokaisen verkkopyynnössä kutsutun menetelmän aika. Jos esimerkiksi verkkosovelluksessasi on suorituskykyongelma, nämä tiedot voivat auttaa ongelman virheenkorjauksessa. Nämä tiedot näytetään, kun sovellus suoritetaan Visual Studiossa.

Katsotaanpa, miten sovelluksen jäljitys otetaan käyttöön sivutasolla.

Vaihe 1) Työskentelemme DemoApplication-sovelluksessamme. Avaa demo.aspx-tiedosto Solution Explorerista

Vaihe 2) Lisää sivun jäljitys lisäämällä alla oleva koodirivi. Liitä sivulausekkeeseen vain rivi Trace = "true". Tämä koodirivi sallii sivutason jäljittämisen.

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

Nyt kun verkkosivu Demo.aspx näytetään, saat paljon tietoa sivusta. Tiedot, kuten sivun elinkaaren kunkin osan aika, näkyvät tällä sivulla.

Virheiden käsittely: Mukautetun virhesivun näyttäminen

ASP.Net-sovelluksessa käyttäjät voivat näyttää mukautettuja virhesivuja. Jos sovelluksessa on minkäänlaista virhettä, mukautettu sivu näyttää tämän virheen käyttäjälle.

Esimerkissämme aiomme ensin lisätä HTML-sivun. Tämä sivu näyttää merkkijonon käyttäjälle "Etsimme ongelmaa". Lisäämme sitten virhekoodin demo.aspx-sivullemme, jotta virhesivu näytetään.

Noudatetaan alla mainittuja vaiheita

Vaihe 1) Työskentelemme DemoApplication-sovelluksessamme. Lisätään HTML-sivu sovellukseen

  1. Napsauta hiiren kakkospainikkeella DemoApplicationia Solution Explorerissa
  2. Valitse valikkokohta 'Lisää' -> HTML-sivu

Vaihe 2) Seuraavassa vaiheessa meidän on annettava nimi uudelle HTML-sivulle.

  1. Anna nimi nimellä ErrorPage.
  2. Napsauta OK-painiketta jatkaaksesi.

Vaihe 3) Virhesivu avautuu automaattisesti Visual Studiossa. Jos siirryt Solution Exploreriin, näet lisätyn tiedoston.

Lisää koodirivi "Etsimme ongelmaa" HTML-sivulle. Sinun ei tarvitse sulkea HTML-tiedostoa ennen muutosta web.config-tiedostoon.

We are looking into the problem

Vaihe 4) Nyt sinun on tehtävä muutos web.config-tiedostoon. Tämä muutos ilmoittaa, että aina kun sovelluksessa tapahtuu virhe, mukautettu virhesivu on näytettävä.

'CustomErrors' -tunnisteen avulla voidaan määrittää mukautettu virhesivu. Oletusarvoinen uudelleenohjausominaisuus asetetaan edellisessä vaiheessa luodun mukautetun virhesivumme nimeksi.

Vaihe 5) Lisää nyt viallinen koodi demo.aspx.cs -sivulle. Avaa tämä sivu kaksoisnapsauttamalla tiedostoa Solution Explorerissa

Lisää alla oleva koodi Demo.aspx.cs-tiedostoon.

  • Nämä koodirivit on suunniteltu lukemaan tekstin rivit tiedostosta.
  • Tiedoston oletetaan olevan D-asemassa nimellä 'Esimerkki.txt'.
  • Mutta tilanteessamme tätä tiedostoa ei oikeastaan ​​ole olemassa. Joten tämä koodi johtaa virheeseen, kun sovellus toimii.

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

Suorita nyt koodi Visual Studiossa ja sinun pitäisi saada alla oleva lähtö.

Lähtö: -

Yllä oleva sivu osoittaa, että virhe aiheutti sovelluksen. Tämän seurauksena Error.html -sivu näytetään käyttäjälle.

ASP.NET käsittelemätön poikkeus

Jopa parhaissa skenaarioissa voi olla virheitä, joita ei vain ennakoida.

Oletetaan, että jos käyttäjä selaa sovelluksen väärälle sivulle. Tätä ei voida ennustaa. Tällaisissa tapauksissa ASP.Net voi ohjata käyttäjän uudelleen osoitteeseen errorpage.html.

Katsotaanpa esimerkki tästä.

  • Aiomme käyttää samaa 'DemoApplication', jolla on Errorpage.html.
  • Ja yritämme tarkastella verkkosivua, jota ei ole sovelluksessamme.
  • Tässä tapauksessa meidät tulisi ohjata ErrorPage.html -sivullemme. Katsotaanpa vaiheet tämän saavuttamiseksi.

Vaihe 1) Työskentelemme DemoApplication-sovelluksessamme. Avaa Global.asax.cs-tiedosto Solution Explorerista

HUOMAUTUS : Global.asax.cs-tiedostoa käytetään lisäämään koodia, joka on sovelluksen kaikilla sivuilla.

Vaihe 2) Lisää alla oleva koodirivi osoitteeseen global.asax.cs. Näitä rivejä käytetään virheiden tarkistamiseen ja ErrorPage.html -sivun näyttämiseen vastaavasti.

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

Koodin selitys: -

  1. Ensimmäinen rivi on Application_Error-tapahtumankäsittelijä. Tämä tapahtuma kutsutaan aina, kun sovelluksessa tapahtuu virhe. Huomaa, että tapahtuman nimen on oltava 'Application_Error'. Ja parametrien tulisi olla yllä esitetyt.
  2. Seuraavaksi määritetään luokkatyyppinen objekti HttpException. Tämä on vakioobjekti, joka sisältää kaikki virheen yksityiskohdat. Sitten käytämme Server.GetLastError-menetelmää saadaksesi kaikki viimeisen sovelluksessa tapahtuneen virheen yksityiskohdat.
  3. Sitten tarkistamme, onko viimeisen virheen virhekoodi 404. (Virhekoodi 404 on vakiokoodi, joka palautetaan, kun käyttäjä selaa sivulle, jota ei löydy). Siirrämme käyttäjän sitten ErrorPage.html -sivulle, jos virhekoodi täsmää.

Suorita nyt koodi Visual Studiossa ja sinun pitäisi saada alla oleva lähtö

Lähtö: -

Selaa sivua http: // localhost: 53003 / Demo1.aspx . Muista, että Demo1.aspx-sovellusta ei ole olemassa. Sitten saat alla olevan tuotoksen.

Yllä oleva sivu osoittaa, että virhe aiheutti sovelluksen. Tämän seurauksena Error.html -sivu näytetään käyttäjälle.

ASP.NET-virhe kirjautuessa

Kirjaamalla sovellusvirheet, se auttaa kehittäjää virheenkorjauksessa ja ratkaisemaan virheen myöhemmin. ASP.Netillä on mahdollisuus kirjata virheet. Tämä tehdään Global.asax.cs-tiedostossa, kun virhe on kaapattu. Sieppauksen aikana virhesanoma voidaan kirjoittaa lokitiedostoon.

Katsotaanpa esimerkki tästä.

  • Aiomme käyttää samaa DemoApplication-sovellustamme, jolla on Errorpage.html.
  • Ja yritämme tarkastella verkkosivua, jota ei ole sovelluksessamme.
  • Tässä tapauksessa meidät tulisi ohjata ErrorPage.html -sivullemme.
  • Samalla kirjoitamme virheilmoituksen lokitiedostoon. Katsotaanpa vaiheet tämän saavuttamiseksi.

Vaihe 1) Työskentelemme DemoApplication-sovelluksessamme. Avaa Global.asax.cs-tiedosto Solution Explorerista

Vaihe 2) Lisää alla oleva koodirivi osoitteeseen global.asax.cs. Se tarkistaa virheet ja näyttää ErrorPage.html -sivun vastaavasti. Samalla kirjaamme virhetiedot tiedostoon nimeltä AllErrors.txt. Esimerkissä kirjoitamme koodin, jotta tämä tiedosto luodaan D-asemalle.

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

Koodin selitys: -

  1. Ensimmäinen rivi on saada itse virhe käyttämällä 'Server.GetLastError' -menetelmää. Tämä määritetään sitten muuttujalle 'exc'.
  2. Sitten luomme tyhjän merkkijonomuuttujan nimeltä str. Saamme todellisen virhesanoman 'exc.Message' -ominaisuuden avulla. Exc.Message-ominaisuudella on tarkka viesti mahdollisista virheistä, jotka tapahtuvat sovellusta suoritettaessa. Tämä määritetään sitten merkkijonomuuttujalle.
  3. Seuraavaksi määritetään tiedosto nimeltä AllErrrors.txt. Täällä kaikki virheilmoitukset lähetetään. Kirjoitamme merkkijonon "str", joka sisältää kaikki virheilmoitukset tähän tiedostoon.
  4. Lopuksi siirrämme käyttäjän ErrorPage.html-tiedostoon.

Lähtö: -

Selaa sivua http: // localhost: 53003 / Demo1.aspx . Muista, että Demo1.aspx-sovellusta ei ole olemassa. Sitten saat alla olevan tuotoksen.

Ja samalla, jos avaat AllErrors.txt-tiedoston, näet alla olevat tiedot.

Virhesanoma voidaan sitten välittää kehittäjälle myöhemmin myöhemmin virheenkorjausta varten.

Yhteenveto

  • ASP.Netillä on mahdollisuus suorittaa virheenkorjaus ja virhekäsittely.
  • Virheenkorjaus voidaan saavuttaa lisäämällä katkaisupisteet koodiin. Sitten suoritetaan Visual Studion Käynnistä virheenkorjauksella -vaihtoehto koodin virheenkorjaamiseksi.
  • Jäljitys on mahdollisuus tarjota lisätietoja sovellusta suoritettaessa. Tämä voidaan tehdä sovellus- tai sivutasolla.
  • Sivutasolla koodi Trace = true on lisättävä sivudirektiiviin.
  • Sovellustasolla sovellukselle luodaan ylimääräinen sivu nimeltä Trace.axd. Tämä antaa kaikki tarvittavat jäljitystiedot.