Asp.Net-sivutaso Tracvirheenkorjaus, virheenkäsittely
⚡ Älykäs yhteenveto
ASP.NET-virheenkorjaus, tracja virheiden käsittely Visual Studiossa auttavat kehittäjiä havaitsemaan ongelmat varhaisessa vaiheessa, seuraamaan pyyntöjä läpi trace.axd ja ohjaavat käyttäjät mukautetuille virhesivuille, kun kehitys- ja tuotantosyklin aikana ilmenee käsittelemättömiä poikkeuksia.
Kaikissa sovelluksissa virheitä tapahtuu väistämättä kehitysprosessin aikana. On tärkeää pystyä havaitsemaan virheet varhaisessa vaiheessa.
Visual Studiossa tämä on mahdollista ASP.NET-sovelluksille. Visual Studiota käytetään virheenkorjaukseen ja siinä on virheenkäsittelytekniikoita ASP.NETille.
Mitä on virheenkorjaus ASP.NET:ssä?
Virheenkorjaus on prosessi, jossa sovellukseen lisätään keskeytyspisteitä. Näitä keskeytyspisteitä käytetään käynnissä olevan ohjelman suorituksen keskeyttämiseen. Tämä antaa kehittäjälle mahdollisuuden ymmärtää, mitä ohjelmassa tapahtuu tiettynä ajankohtana.
Otetaan esimerkki ohjelmasta. Ohjelma näyttää käyttäjälle merkkijonon ”Virheenkorjaus on käynnissä”. Oletetaan, että sovellusta suoritettaessa merkkijonoa ei jostain syystä näytetä. Ongelman tunnistamiseksi meidän on lisättävä keskeytyskohta. Voimme lisätä keskeytyskohdan koodiriville, joka näyttää merkkijonon. Tämä keskeytyskohta pysäyttää ohjelman suorituksen. Tässä vaiheessa ohjelmoija voi nähdä, mikä mahdollisesti menee pieleen. Ohjelmoija korjaa ohjelman vastaavasti.
Tässä esimerkissä käytämme aiemmissa luvuissa luotua demosovellustamme. Seuraavassa esimerkissä näemme:
- Kuinka saada demosovellus näyttämään merkkijono.
- Kuinka lisätä keskeytyskohtia sovellukseen.
- Sovelluksen virheenkorjaus tämän keskeytyskohdan avulla.
Sovelluksen virheenkorjaus ASP.NETissä
Alla on vaiheet demosovelluksen tekemiseen, keskeytyspisteiden lisäämiseen ja debuggaamiseen ASP.NETissä:
Vaihe 1) Avaa sovellus Visual Studiossa.
Varmistakaamme 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 näyttääksesi merkkijonon.
- Joten kun sovellus suoritetaan, sen pitäisi näyttää verkkoselaimessa merkkijono "Meillä on virheenkorjaus".
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ää sovellukseen keskeytyskohta.
Keskeytyskohta on Visual Studion piste, johon haluat ohjelman suorittamisen pysähtyvän.
- Lisätäksesi keskeytyskohdan sinun on napsautettava saraketta, johon haluat lisätä keskeytyskohdan. Tässä tapauksessa haluamme ohjelmamme pysähtyvän koodiriville ”Response.Write”. Sinun ei tarvitse lisätä mitään komentoa keskeytyskohdan lisäämiseksi. Sinun tarvitsee vain napsauttaa riviä, jolle haluat lisätä keskeytyskohdan.
- Kun tämä on tehty, huomaat, että koodi merkitään punaisella. Lisäksi koodirivin viereiseen sarakkeeseen tulee punainen kupla.
Huomautus: Voit lisätä sovellukseen useita keskeytyspisteitä.
Vaihe 4) Suorita sovellus virheenkorjaustilassa.
Nyt sinun on suoritettava sovelluksesi virheenkorjaustilassa. Valitse Visual Studiossa valikkovaihtoehto Debug-> Start Debugging.
Lähtö: -
Kun teet kaikki vaiheet oikein, ohjelman suoritus keskeytyy. Visual Studio siirtyy keskeytyskohtaan ja merkitsee koodirivin keltaisella.
Nyt, jos ohjelmoija katsoo, että koodi on väärä, suoritus voidaan keskeyttää. Koodia voidaan sitten muokata vastaavasti. Jatkaaksesi ohjelman suorittamista, ohjelmoijan on napsautettava näppäimistön F5-painiketta.
Mikä on TracASP.NETissä?
Hakemus tracta mahdollistaa sen, että nähdään, aiheuttavatko pyydetyt sivut virheen. Kun tracon käytössä, ylimääräinen sivu nimeltä trace.axd lisätään sovellukseen (katso kuva alla). Tämä sivu on liitetty sovellukseen ja näyttää kaikki pyynnöt ja niiden tilan.
Kuinka sallia Tracsovelluksen luominen ASP.NETissä
Katsotaanpa, miten se otetaan käyttöön tracetsimässä ASP.NET-sovellus:
Vaihe 1) Työstetään demosovellustamme. Avaa web.config-tiedosto ratkaisuselaimessa.
Vaihe 2) Lisää alla oleva koodirivi web.config-tiedostoon. trace-lausetta käytetään ottamaan käyttöön trachakemusta varten.
- RequestLimit-arvo trace-lauseke määrittää sivupyyntöjen määrän, jotka on käsiteltävä tracpainos
- Esimerkissämme annamme rajan 40. Annamme rajan, koska korkeampi arvo heikentää sovelluksen suorituskykyä.
<?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 enabled="true" pageOutput="false" requestLimit="40" localOnly="false" /> </system.web> </configuration>
Suorita DemoApplication Visual Studiossa.
Lähtö: -
Jos nyt selailet kohtaan URL http://localhost:53003/trace.axd, näet kunkin pyynnön tiedot. Täältä näet, esiintyykö sovelluksessa virheitä. Sivulla näytetään seuraavanlaisia tietoja:
- Web-sivun pyynnön aika.
- Pyydetyn verkkosivun nimi.
- Verkkopyynnön tilakoodi (tilakoodi 200 tarkoittaa, että pyyntö onnistui).
- Näytä tiedot -linkki, jonka avulla voit tarkastella lisätietoja verkkopyynnöstä. Yksi tärkeä tieto on otsikkotiedot, jotka näyttävät, mitä tietoja kunkin verkkopyynnön otsikossa lähetetään.
Sivun taso TracASP.NET-kielellä
Sivun taso Tracta ASP.NETissä näyttää kaikki yleiset tiedot verkkosivusta sen käsittelyn aikana. Tästä on hyötyä virheenkorjauksessa, jos sivu ei jostain syystä toimi. Visual Studio tarjoaa yksityiskohtaisia tietoja sivun eri osa-alueista, kuten kunkin verkkopyynnössä kutsutun metodin ajan.
Jos esimerkiksi verkkosovelluksessasi on suorituskykyongelma, nämä tiedot voivat auttaa ongelman vianmäärityksessä. Nämä tiedot näytetään, kun sovellus suoritetaan Visual Studiossa.
Kuinka sallia Tracsivutasolla ASP.NETissä
Katsotaanpa, miten sivutaso otetaan käyttöön tracASP.NET-sovelluksen käyttö:
Vaihe 1) Työstetään demosovellustamme. Avaa demo.aspx-tiedosto ratkaisuselaimessa.
Vaihe 2) Lisää alla oleva koodirivi sivun aktivoimiseksi tracing. Sivun määrittelyssä lisää vain attribuutti Trace=”true”. Tämä koodirivi sallii sivutason tracden.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" Trace="true" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> </form> </body> </html>
Suorita sovellus Visual Studiossa.
Lähtö: -
Nyt kun Web-sivu Demo.aspx tulee näkyviin, saat paljon tietoa sivusta. Tällä sivulla näytetään tiedot, kuten aika kullekin sivun elinkaaren osalle.
Virheiden käsittely: Mukautetun virhesivun näyttäminen
In ASP.NET, voit näyttää käyttäjille mukautettuja virhesivuja. Jos sovellus sisältää minkä tahansa virheen, mukautettu sivu näyttää tämän virheen käyttäjälle.
Esimerkissämme lisäämme ensin HTML-sivun. Tämä sivu näyttää käyttäjälle merkkijonon "Selvitämme ongelmaa". Sitten lisäämme virhekoodia demo.aspx-sivullemme, jotta virhesivu näytetään. Noudatetaan alla mainittuja vaiheita.
Vaihe 1) Työstetään demosovellustamme. Lisätään sovellukseen HTML-sivu.
- Napsauta DemoApplication-sovellusta hiiren kakkospainikkeella Ratkaisujen hallinnassa.
- Valitse valikkovaihtoehto Lisää -> HTML-sivu.
Vaihe 2) Seuraavassa vaiheessa meidän on annettava nimi uudelle HTML-sivulle.
- Anna nimeksi ErrorPage.
- Napsauta OK-painiketta jatkaaksesi.
Vaihe 3) Virhesivu avautuu automaattisesti Visual Studiossa. Jos siirryt ratkaisuhallintaan, näet tiedoston lisättynä.
Lisää HTML-sivulle koodirivi ”Selvitämme ongelmaa”. HTML-tiedostoa ei tarvitse sulkea ennen web.config-tiedoston muuttamista.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> We are looking into the problem </body> </html>
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-tagin avulla voit määrittää mukautetun virhesivun. defaultRedirect-ominaisuudeksi asetetaan edellisessä vaiheessa luomamme mukautetun virhesivun nimi.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
Vaihe 5) Lisätään nyt virheellistä koodia demo.aspx.cs-sivulle. Avaa tämä sivu kaksoisnapsauttamalla tiedostoa Ratkaisuhallinnassa.
Lisää alla oleva koodi Demo.aspx.cs-tiedostoon.
- Nämä koodirivit on suunniteltu lukemaan tekstirivejä tiedostosta.
- Tiedoston on tarkoitus sijaita D-asemalla nimellä Example.txt.
- Mutta meidän tilanteessamme tätä tiedostoa ei todellakaan ole olemassa. Joten tämä koodi aiheuttaa virheen, kun sovellus suoritetaan.
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 sisään Visual Studio ja sinun pitäisi saada alla oleva tulos.
Lähtö: -
Yllä oleva sivu osoittaa, että sovelluksessa on tapahtunut virhe. Tämän seurauksena käyttäjälle näytetään ErrorPage.html-sivu.
ASP.NET käsittelemätön poikkeus
Parhaassakin tapauksessa voi tapahtua virheitä, joita ei voida ennakoida. Oletetaan, että käyttäjä selaa väärälle sivulle sovelluksessa. Tätä ei voida ennustaa. Tällaisissa tapauksissa ASP.NET voi ohjata käyttäjän ErrorPage.html-tiedostoon.
Katsotaanpa esimerkkiä tästä.
- Aiomme käyttää samaa DemoApplication-sovellustamme, jolla on ErrorPage.html-tiedosto.
- Ja yritämme tarkastella verkkosivua, jota ei ole sovelluksessamme.
- Meidät pitäisi tässä tapauksessa ohjata ErrorPage.html-sivullemme. Katsotaanpa vaiheet tämän saavuttamiseksi.
Vaihe 1) Työstetään demosovellustamme. Avaa Global.asax.cs-tiedosto ratkaisuselaimessa.
Huomautus: Global.asax.cs-tiedostoa käytetään koodin lisäämiseen, jota sovelletaan kaikilla sovelluksen sivuilla.
Vaihe 2) Lisää alla oleva koodirivi Global.asax.cs-tiedostoon. Näitä rivejä käytetään virheiden tarkistamiseen ja ErrorPage.html-sivun näyttämiseen niiden mukaisesti.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if (lastErrorWrapper.GetHttpCode() == 404) Server.Transfer("~/ErrorPage.html"); } } }
Code Selitys:-
- Ensimmäinen rivi on Application_Error-tapahtumankäsittelijä. Tätä tapahtumaa kutsutaan aina, kun sovelluksessa tapahtuu virhe. Huomaa, että tapahtuman nimen on oltava Application_Error ja parametrien tulee olla yllä olevan kaltaiset.
- Seuraavaksi määritämme objektin luokkatyyppiä HttpException. Tämä on vakioobjekti, joka sisältää kaikki virheen yksityiskohdat. Käytämme sitten Server.GetLastError-menetelmää saadaksemme kaikki tiedot viimeisestä sovelluksessa tapahtuneesta virheestä.
- Sitten tarkistamme, onko viimeisen virheen virhekoodi 404 (virhekoodi 404 on vakiokoodi, joka palautetaan, kun käyttäjä selaa sivulle, jota ei löydy). Jos virhekoodi on sama, siirrämme käyttäjän ErrorPage.html-sivulle.
Suorita nyt koodi Visual Studiossa ja sinun pitäisi saada alla oleva tuloste.
Lähtö: -
Selaa sivua http://localhost:53003/Demo1.aspx. Muista, että Demo1.aspx-tiedostoa ei ole sovelluksessamme. Sitten saat alla olevan tulosteen.
Yllä oleva sivu osoittaa, että sovelluksessa on tapahtunut virhe. Tämän seurauksena käyttäjälle näytetään ErrorPage.html-sivu.
ASP.NET-virheiden kirjaaminen
Sovellusvirheiden kirjaaminen auttaa kehittäjää vianmäärityksessä ja virheen ratkaisemisessa myöhemmin. ASP.NET:ssä on ominaisuus virheiden kirjaamiseen. Tämä tehdään Global.asax.cs-tiedostoon, kun virhe tallennetaan. Tallennusprosessin aikana virheilmoitus voidaan kirjoittaa lokitiedostoon.
Katsotaanpa esimerkkiä tästä.
- Aiomme käyttää samaa DemoApplication-sovellustamme, jolla on ErrorPage.html-tiedosto.
- Ja yritämme tarkastella verkkosivua, jota ei ole sovelluksessamme.
- Tässä tapauksessa meidät pitäisi ohjata ErrorPage.html-sivullemme.
- Ja samaan aikaan kirjoitamme virheilmoituksen lokitiedostoon. Katsotaanpa vaiheet tämän saavuttamiseksi.
Vaihe 1) Työstetään demosovellustamme. Avaa Global.asax.cs-tiedosto ratkaisuselaimessa.
Vaihe 2) Lisää alla oleva koodirivi Global.asax.cs-tiedostoon. Se tarkistaa virheet ja näyttää ErrorPage.html-sivun sen mukaisesti. Samanaikaisesti kirjaamme myös virhetiedot tiedostoon nimeltä AllErrors.txt. Esimerkissämme kirjoitamme koodia, joka luo tämän tiedoston D-asemalle.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str = ""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllText(path, str); Server.Transfer("~/ErrorPage.html"); } } }
Code Selitys:-
- Ensimmäisellä rivillä haetaan itse virhe käyttämällä Server.GetLastError-metodia. Tämä sitten sijoitetaan muuttujaan exc.
- Sitten luomme tyhjän merkkijonomuuttujan nimeltä str. Saamme varsinaisen virheilmoituksen käyttämällä exc.Message-ominaisuutta. exc.Message-ominaisuudella on tarkka viesti mistä tahansa virheestä, joka ilmenee sovelluksen suorittamisen aikana. Tämä sitten sijoitetaan merkkijonomuuttujaan.
- Seuraavaksi määrittelemme tiedoston nimeltä AllErrors.txt. Tähän tiedostoon lähetetään kaikki virheilmoitukset. Kirjoitamme tähän tiedostoon merkkijonon str, joka sisältää kaikki virheilmoitukset.
- Lopuksi siirrämme käyttäjän ErrorPage.html-tiedostoon.
Lähtö: -
Selaa sivua http://localhost:53003/Demo1.aspx. Muista, että Demo1.aspx-tiedostoa ei ole sovelluksessamme. Sitten saat alla olevan tulosteen.
Ja samaan aikaan, jos avaat AllErrors.txt-tiedoston, näet alla olevat tiedot.
Virheilmoitus voidaan sitten välittää kehittäjälle myöhemmin virheenkorjausta varten.





























