Úroveň stránky Asp.Net Tracing, ladění, ošetření chyb
⚡ Chytré shrnutí
Ladění ASP.NET, tracOšetřování chyb ve Visual Studiu pomáhá vývojářům včas odhalit problémy a plnit požadavky. trace.axd a přesměrovat uživatele na vlastní chybové stránky, když se během vývojového a produkčního cyklu vyskytnou neošetřené výjimky.
V jakékoli aplikaci se během procesu vývoje zákonitě vyskytnou chyby. Je důležité umět odhalit chyby v rané fázi.
Ve Visual Studiu je to možné pro ASP.NET aplikace. Visual Studio se používá pro ladění a má techniky pro ošetření chyb pro ASP.NET.
Co je ladění v ASP.NET?
Ladění je proces přidávání zarážek do aplikace. Tyto zarážky se používají k pozastavení provádění běžícího programu. To umožňuje vývojáři pochopit, co se v programu v určitém časovém okamžiku děje.
Vezměme si příklad programu. Program uživateli zobrazí řetězec „Provádíme ladění“. Předpokládejme, že když spustíme aplikaci, řetězec se z nějakého důvodu nezobrazí. Abychom identifikovali problém, musíme přidat zarážku. Zarážku můžeme přidat do řádku kódu, který zobrazuje řetězec. Tato zarážka pozastaví provádění programu. V tomto okamžiku programátor vidí, co je pravděpodobně špatně. Programátor program odpovídajícím způsobem opraví.
V tomto příkladu použijeme naši DemoApplication, která byla vytvořena v předchozích kapitolách. V následujícím příkladu uvidíme:
- Jak přimět demo aplikaci zobrazovat řetězec.
- Jak přidat body přerušení do aplikace.
- Jak ladit aplikaci pomocí tohoto bodu přerušení.
Jak ladit aplikaci v ASP.NET
Níže jsou uvedeny kroky pro vytvoření demo aplikace, přidání zarážek a ladění v ASP.NET:
Krok 1) Otevřete aplikaci ve Visual Studiu.
Nejprve se ujistěte, že máme naši webovou aplikaci otevřenou ve Visual Studiu. Ujistěte se, že je ve Visual Studiu otevřená aplikace DemoApplication.
Krok 2) Nyní otevřete soubor Demo.aspx.cs a přidejte níže uvedený řádek kódu.
- Právě přidáváme řádek kódu Response.Write pro zobrazení řetězce.
- Když se tedy aplikace spustí, měla by ve webovém prohlížeči zobrazit řetězec „Ladíme“.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
Krok 3) Přidejte do aplikace zarážku.
Bod přerušení je bod v sadě Visual Studio, kde chcete zastavit provádění programu.
- Chcete-li přidat zarážku, musíte kliknout na sloupec, kam chcete zarážku vložit. V našem případě tedy chceme, aby se náš program zastavil na řádku kódu „Response.Write“. Pro přidání zarážky není třeba přidávat žádný příkaz. Stačí kliknout na řádek, na který chcete zarážku přidat.
- Jakmile to uděláte, všimnete si, že kód je označen červeně. Ve sloupci vedle řádku kódu se také objeví červená bublina.
Poznámka: V aplikaci můžete přidat více zarážek.
Krok 4) Spusťte aplikaci v režimu ladění.
Nyní musíte spustit aplikaci pomocí režimu ladění. V sadě Visual Studio vyberte možnost nabídky Debug->Start Debugging.
Výstup:-
Když provedete všechny kroky správně, provádění programu se přeruší. Visual Studio přejde na bod přerušení a označí řádek kódu žlutě.
Nyní, pokud má programátor pocit, že kód je nesprávný, může být provádění zastaveno. Kód lze poté odpovídajícím způsobem upravit. Aby mohl programátor pokračovat v programu, musí kliknout na tlačítko F5 na klávesnici.
Co je to Tracv ASP.NET?
editaci videa tracing. umožňuje zjistit, zda některé požadované stránky vedou k chybě. Kdy tracje povoleno, zobrazí se další stránka s názvem tracSoubor e.axd je přidán do aplikace (viz obrázek níže). Tato stránka je připojena k aplikaci a zobrazuje všechny požadavky a jejich stav.
Jak povolit Tracpro aplikaci v ASP.NET
Pojďme se podívat na to, jak povolit tracing pro Aplikace ASP.NET:
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor web.config z Solution Exploreru.
Krok 2) Přidejte níže uvedený řádek kódu do souboru web.config. tracPříkaz e se používá k povolení tracpro aplikaci.
- RequestLimit v tracPříkaz e určuje počet požadavků na stránku, které musí být provedeny. traced.
- V našem příkladu udáváme limit 40. Limit uvádíme proto, že vyšší hodnota sníží výkon aplikace.
<?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>
Spusťte DemoApplication ve Visual Studiu.
Výstup:-
Pokud nyní přejdete na URL http://localhost:53003/trace.axd, zobrazí se informace pro každý požadavek. Zde můžete vidět, zda se v aplikaci vyskytly nějaké chyby. Na stránce se zobrazují následující typy informací:
- Čas požadavku na webovou stránku.
- Název požadované webové stránky.
- Stavový kód webového požadavku (stavový kód 200 znamená, že požadavek byl úspěšný).
- Odkaz Zobrazit podrobnosti, který umožňuje zobrazit další podrobnosti o webovém požadavku. Důležitým údajem jsou informace v záhlaví, které ukazují, jaké informace se odesílají v záhlaví každého webového požadavku.
Úroveň stránky Tracv ASP.NET
Úroveň stránky Tracing. V ASP.NET zobrazuje všechny obecné informace o webové stránce během jejího zpracování. To je užitečné při ladění, pokud stránka z jakéhokoli důvodu nefunguje. Visual Studio poskytuje podrobné informace o různých aspektech stránky, například čas pro každou metodu, která je volána ve webovém požadavku.
Například pokud má vaše webová aplikace problém s výkonem, tyto informace mohou pomoci s laděním problému. Tyto informace se zobrazují při spuštění aplikace v aplikaci Visual Studio.
Jak povolit Tracna úrovni stránky v ASP.NET
Podívejme se, jak povolit úroveň stránky tracpro ASP.NET aplikaci:
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor demo.aspx z Průzkumníka řešení.
Krok 2) Přidejte níže uvedený řádek kódu pro povolení stránky tracing. V deklaraci stránky stačí přidat atribut Trace=”true”. Tento řádek kódu povolí tracIng.
<%@ 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>
Spusťte aplikaci v sadě Visual Studio.
Výstup:-
Nyní, když se zobrazí webová stránka Demo.aspx, získáte o stránce spoustu informací. Na této stránce se zobrazují informace, jako je čas pro každý aspekt životního cyklu stránky.
Zpracování chyb: Zobrazení vlastní chybové stránky
In ASP.NET, můžete uživatelům zobrazit vlastní chybové stránky. Pokud aplikace obsahuje jakýkoli druh chyby, uživatelská stránka tuto chybu zobrazí uživateli.
V našem příkladu nejprve přidáme HTML stránku. Tato stránka zobrazí uživateli řetězec „Problém řešíme“. Poté na naši stránku demo.aspx přidáme chybový kód, aby se chybová stránka zobrazila. Postupujme podle níže uvedených kroků.
Krok 1) Pojďme pracovat na naší DemoApplication. Přidejme do aplikace HTML stránku.
- V Průzkumníku řešení klikněte pravým tlačítkem myši na DemoApplication.
- V nabídce vyberte možnost Přidat->HTML stránka.
Krok 2) V dalším kroku musíme zadat název nové HTML stránky.
- Zadejte název jako ErrorPage.
- Pokračujte kliknutím na tlačítko OK.
Krok 3) Stránka ErrorPage se automaticky otevře ve Visual Studiu. Pokud přejdete do Průzkumníka řešení, uvidíte přidáný soubor.
Přidejte na HTML stránku kód „Problém řešíme“. Před provedením změny v souboru web.config není nutné HTML soubor zavírat.
<!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>
Krok 4) Nyní je třeba provést změnu v souboru web.config. Tato změna upozorní, že vždy, když v aplikaci dojde k chybě, je třeba zobrazit vlastní chybovou stránku. Tag customErrors umožňuje definovat vlastní chybovou stránku. Vlastnost defaultRedirect je nastavena na název naší vlastní chybové stránky vytvořené v předchozím kroku.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
Krok 5) Nyní přidejme chybný kód na stránku demo.aspx.cs. Otevřete tuto stránku dvojitým kliknutím na soubor v Průzkumníku řešení.
Přidejte níže uvedený kód do souboru Demo.aspx.cs.
- Tyto řádky kódu jsou navrženy tak, aby četly řádky textu ze souboru.
- Soubor by se měl nacházet na disku D a měl by se nazývat Example.txt.
- Ale v naší situaci tento soubor ve skutečnosti neexistuje. Tento kód tedy povede k chybě při spuštění aplikace.
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); } } }
Nyní spusťte kód v Visual Studio a měli byste získat níže uvedený výstup.
Výstup:-
Výše uvedená stránka ukazuje, že v aplikaci došlo k chybě. V důsledku toho se uživateli zobrazí stránka ErrorPage.html.
Neošetřená výjimka ASP.NET
I v nejlepším případě se mohou vyskytnout chyby, které nelze předvídat. Předpokládejme, že uživatel přejde na nesprávnou stránku v aplikaci. To je něco, co nelze předvídat. V takových případech může ASP.NET uživatele přesměrovat na soubor ErrorPage.html.
Podívejme se na příklad.
- Použijeme stejnou DemoApplication, která má soubor ErrorPage.html.
- A my se pokusíme zobrazit webovou stránku, která v naší aplikaci neexistuje.
- V tomto případě bychom měli být přesměrováni na stránku ErrorPage.html. Podívejme se na kroky, jak toho dosáhnout.
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor Global.asax.cs z Průzkumníka řešení.
Poznámka: Soubor Global.asax.cs se používá k přidání kódu, který bude použitelný na všech stránkách aplikace.
Krok 2) Přidejte níže uvedený řádek kódu do souboru Global.asax.cs. Tyto řádky budou použity ke kontrole chyb a zobrazení stránky ErrorPage.html.
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 Vysvětlení:-
- První řádek je obslužná rutina události Application_Error. Tato událost se volá vždy, když v aplikaci dojde k chybě. Upozorňujeme, že název události musí být Application_Error a parametry by měly být takové, jak je uvedeno výše.
- Dále definujeme objekt třídy typu HttpException. Toto je standardní objekt, který bude obsahovat všechny podrobnosti o chybě. Poté použijeme metodu Server.GetLastError k získání všech podrobností o poslední chybě, která se v aplikaci vyskytla.
- Poté zkontrolujeme, zda je kód chyby poslední chyby 404 (kód chyby 404 je standardní kód vrácený, když uživatel přejde na stránku, která nebyla nalezena). Pokud se kód chyby shoduje, přesměrujeme uživatele na stránku ErrorPage.html.
Nyní spusťte kód ve Visual Studiu a měli byste dostat níže uvedený výstup.
Výstup:-
Procházejte stránku http://localhost:53003/Demo1.aspx. Pamatujte, že Demo1.aspx v naší aplikaci neexistuje. Poté získáte níže uvedený výstup.
Výše uvedená stránka ukazuje, že v aplikaci došlo k chybě. V důsledku toho se uživateli zobrazí stránka ErrorPage.html.
Protokolování chyb ASP.NET
Protokolováním chyb aplikace pomáhá vývojáři ladit a chybu později vyřešit. ASP.NET má funkci protokolování chyb. To se provádí v souboru Global.asax.cs po zachycení chyby. Během procesu zachycení lze chybovou zprávu zapsat do souboru protokolu.
Podívejme se na příklad.
- Použijeme stejnou DemoApplication, která má soubor ErrorPage.html.
- A my se pokusíme zobrazit webovou stránku, která v naší aplikaci neexistuje.
- V tomto případě bychom měli být přesměrováni na naši stránku ErrorPage.html.
- A zároveň zapíšeme chybovou zprávu do souboru protokolu. Podívejme se na kroky, jak toho dosáhnout.
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor Global.asax.cs z Průzkumníka řešení.
Krok 2) Přidejte níže uvedený řádek kódu do souboru Global.asax.cs. Provede se kontrola chyb a zobrazení stránky ErrorPage.html. Zároveň se zaznamenají podrobnosti o chybě do souboru s názvem AllErrors.txt. V našem příkladu napíšeme kód pro vytvoření tohoto souboru na disku D.
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 Vysvětlení:-
- První řádek slouží k získání samotné chyby pomocí metody Server.GetLastError. Ta je poté přiřazena proměnné exc.
- Poté vytvoříme prázdnou řetězcovou proměnnou s názvem str. Skutečnou chybovou zprávu získáme pomocí vlastnosti exc.Message. Vlastnost exc.Message bude obsahovat přesnou zprávu pro jakoukoli chybu, která se vyskytne při spuštění aplikace. Ta je poté přiřazena řetězcové proměnné.
- Dále definujeme soubor s názvem AllErrors.txt. Sem budou odesílány všechny chybové zprávy. Do tohoto souboru zapíšeme řetězec str, který obsahuje všechny chybové zprávy.
- Nakonec uživatele přeneseme do souboru ErrorPage.html.
Výstup:-
Procházejte stránku http://localhost:53003/Demo1.aspx. Pamatujte, že Demo1.aspx v naší aplikaci neexistuje. Poté získáte níže uvedený výstup.
A zároveň, pokud otevřete soubor AllErrors.txt, uvidíte níže uvedené informace.
Chybová zpráva pak může být předána vývojáři později pro účely ladění.





























