ASP.NET-Seitenebene TracFehlersuche, Debugging, Fehlerbehandlung
⚡ Intelligente Zusammenfassung
ASP.NET-Debugging, tracDie Fehlerbehandlung in Visual Studio hilft Entwicklern, Probleme frühzeitig zu erkennen und Anfragen bis zum Abschluss zu verfolgen. trace.axd und leitet Benutzer auf benutzerdefinierte Fehlerseiten weiter, wenn während des Entwicklungs- und Produktionslebenszyklus unbehandelte Ausnahmen auftreten.
Bei jeder Anwendung treten während des Entwicklungsprozesses zwangsläufig Fehler auf. Es ist wichtig, Fehler frühzeitig entdecken zu können.
In Visual Studio ist dies für ASP.NET-Anwendungen möglich. Visual Studio wird zum Debuggen verwendet und verfügt über Fehlerbehandlungsmethoden für ASP.NET.
Was ist Debuggen in ASP.NET?
Fehlerbeseitigung Das Setzen von Haltepunkten in einer Anwendung ist ein Vorgang, bei dem die Ausführung eines laufenden Programms angehalten wird. Dadurch kann der Entwickler nachvollziehen, was zu einem bestimmten Zeitpunkt im Programm geschieht.
Nehmen wir als Beispiel ein Programm. Dieses Programm zeigt dem Benutzer die Zeichenkette „Wir debuggen“ an. Angenommen, beim Ausführen der Anwendung wird die Zeichenkette aus irgendeinem Grund nicht angezeigt. Um das Problem zu identifizieren, müssen wir einen Haltepunkt setzen. Wir können einen Haltepunkt in der Codezeile einfügen, die die Zeichenkette ausgibt. Dieser Haltepunkt unterbricht die Programmausführung. An dieser Stelle kann der Programmierer erkennen, wo der Fehler liegt, und das Programm entsprechend korrigieren.
In diesem Beispiel verwenden wir unsere Demoanwendung, die in früheren Kapiteln erstellt wurde. Im folgenden Beispiel sehen wir Folgendes:
- So veranlassen Sie die Demoanwendung, eine Zeichenfolge anzuzeigen.
- So fügen Sie einer Anwendung Haltepunkte hinzu.
- So debuggen Sie die Anwendung mithilfe dieses Haltepunkts.
Wie man eine Anwendung in ASP.NET debuggt
Nachfolgend sind die Schritte zum Erstellen einer Demo-Anwendung, zum Hinzufügen von Haltepunkten und zum Debuggen in ASP.NET aufgeführt:
Schritt 1) Öffnen Sie die Anwendung in Visual Studio.
Stellen wir zunächst sicher, dass unsere Webanwendung in Visual Studio geöffnet ist. Vergewissern Sie sich, dass die Demoanwendung in Visual Studio geöffnet ist.
Schritt 2) Öffnen Sie nun die Datei Demo.aspx.cs und fügen Sie die folgende Codezeile hinzu.
- Wir fügen lediglich die Codezeile Response.Write hinzu, um einen String anzuzeigen.
- Wenn die Anwendung ausgeführt wird, sollte sie im Webbrowser die Zeichenfolge „Wir debuggen“ anzeigen.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
Schritt 3) Fügen Sie einen Haltepunkt zur Anwendung hinzu.
Ein Haltepunkt ist ein Punkt in Visual Studio, an dem die Ausführung des Programms gestoppt werden soll.
- Um einen Haltepunkt hinzuzufügen, klicken Sie auf die Spalte, in der der Haltepunkt eingefügt werden soll. In unserem Fall soll das Programm in der Codezeile „Response.Write“ anhalten. Sie müssen keinen Befehl hinzufügen, um einen Haltepunkt zu setzen. Klicken Sie einfach auf die Zeile, in der Sie den Haltepunkt einfügen möchten.
- Sobald dies erledigt ist, werden Sie feststellen, dass der Code rot markiert wird. Außerdem erscheint in der Spalte neben der Codezeile eine rote Blase.
Hinweis: Sie können in einer Anwendung mehrere Haltepunkte hinzufügen.
Schritt 4) Führen Sie die Anwendung im Debug-Modus aus.
Jetzt müssen Sie Ihre Anwendung im Debugmodus ausführen. Wählen Sie in Visual Studio die Menüoption Debuggen -> Debuggen starten.
Ausgabe:-
Wenn Sie alle Schritte korrekt ausführen, wird die Ausführung des Programms unterbrochen. Visual Studio geht zum Haltepunkt und markiert die Codezeile gelb.
Wenn der Programmierer nun der Meinung ist, dass der Code falsch ist, kann die Ausführung gestoppt werden. Der Code kann dann entsprechend geändert werden. Um mit dem Programm fortzufahren, muss der Programmierer auf die Taste F5 auf der Tastatur klicken.
Was ist Tracing in ASP.NET?
Anwendung verfolgen ermöglicht es, zu überprüfen, ob angeforderte Seiten zu einem Fehler führen. tracWenn ing aktiviert ist, wird eine zusätzliche Seite namens angezeigt trace.axd wurde der Anwendung hinzugefügt (siehe Abbildung unten). Diese Seite ist mit der Anwendung verknüpft und zeigt alle Anfragen und deren Status an.
So aktivieren TracSuche nach einer Anwendung in ASP.NET
Schauen wir uns an, wie man das aktiviert. tracing für einen ASP.NET-Anwendung:
Schritt 1) Lassen Sie uns an unserer Demoanwendung arbeiten. Öffnen Sie die Datei web.config im Projektmappen-Explorer.
Schritt 2) Fügen Sie die folgende Codezeile zur web.config-Datei hinzu. tracDie e-Anweisung wird verwendet, um Folgendes zu aktivieren tracfür die Anwendung.
- Die Anfragebegrenzung in der tracDie e-Anweisung gibt die Anzahl der Seitenanforderungen an, die erfüllt sein müssen. traced..
- In unserem Beispiel setzen wir einen Grenzwert von 40 an. Wir legen einen Grenzwert fest, da ein höherer Wert die Leistung der Anwendung beeinträchtigen würde.
<?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>
Führen Sie die Demoanwendung in Visual Studio aus.
Ausgabe:-
Wenn Sie jetzt zu folgendem navigieren URL http://localhost:53003/trace.axdHier sehen Sie die Informationen zu jeder Anfrage. Sie können hier auch erkennen, ob in einer Anwendung Fehler aufgetreten sind. Folgende Informationen werden auf der Seite angezeigt:
- Der Zeitpunkt der Anfrage für die Webseite.
- Der Name der angeforderten Webseite.
- Der Statuscode der Webanfrage (ein Statuscode von 200 bedeutet, dass die Anfrage erfolgreich war).
- Über den Link „Details anzeigen“ können Sie weitere Details zur Webanfrage einsehen. Ein wichtiges Detail sind die Header-Informationen, die anzeigen, welche Daten im Header jeder Webanfrage gesendet werden.
Seitenebene Tracing in ASP.NET
Seitenebene TracIng. In ASP.NET werden während der Verarbeitung einer Webseite alle allgemeinen Informationen angezeigt. Dies ist beim Debuggen hilfreich, falls eine Seite aus irgendeinem Grund nicht funktioniert. Visual Studio liefert detaillierte Informationen zu verschiedenen Aspekten der Seite, beispielsweise die Ausführungszeit jeder Methode, die in der Webanfrage aufgerufen wird.
Wenn Ihre Webanwendung beispielsweise ein Leistungsproblem aufweist, können diese Informationen bei der Fehlersuche helfen. Diese Informationen werden angezeigt, wenn die Anwendung in Visual Studio ausgeführt wird.
So aktivieren Tracing auf Seitenebene in ASP.NET
Schauen wir uns an, wie man die Seitenebene aktiviert. tracing für eine ASP.NET-Anwendung:
Schritt 1) Lassen Sie uns an unserer Demoanwendung arbeiten. Öffnen Sie die Datei demo.aspx im Projektmappen-Explorer.
Schritt 2) Fügen Sie die folgende Codezeile hinzu, um die Seite zu aktivieren. tracFügen Sie in der Seitendeklaration einfach das Attribut hinzu. Trace="true". Diese Codezeile ermöglicht Seitenebene 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>
Führen Sie die Anwendung in Visual Studio aus.
Ausgabe:-
Wenn jetzt die Webseite Demo.aspx angezeigt wird, erhalten Sie eine ganze Reihe von Informationen über die Seite. Auf dieser Seite werden Informationen wie die Zeit für jeden Aspekt des Seitenlebenszyklus angezeigt.
Fehlerbehandlung: Anzeigen einer benutzerdefinierten Fehlerseite
In ASP.Nettokönnen Sie den Benutzern benutzerdefinierte Fehlerseiten anzeigen lassen. Wenn eine Anwendung Fehler enthält, wird dem Benutzer dieser Fehler auf einer benutzerdefinierten Seite angezeigt.
In unserem Beispiel fügen wir zunächst eine HTML-Seite hinzu. Diese Seite zeigt dem Benutzer die Meldung „Wir untersuchen das Problem“ an. Anschließend fügen wir unserer demo.aspx-Seite einen Fehlercode hinzu, damit die Fehlerseite angezeigt wird. Folgen Sie dazu den unten aufgeführten Schritten.
Schritt 1) Lasst uns an unserer Demoanwendung arbeiten. Lasst uns der Anwendung eine HTML-Seite hinzufügen.
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die DemoApplication.
- Wählen Sie die Menüoption Hinzufügen->HTML-Seite.
Schritt 2) Im nächsten Schritt müssen wir der neuen HTML-Seite einen Namen geben.
- Geben Sie als Namen „ErrorPage“ an.
- Klicken Sie auf die Schaltfläche „OK“, um fortzufahren.
Schritt 3) Die Fehlerseite wird automatisch in Visual Studio geöffnet. Im Projektmappen-Explorer sehen Sie die hinzugefügte Datei.
Fügen Sie die Codezeile „Wir untersuchen das Problem“ in die HTML-Seite ein. Sie müssen die HTML-Datei nicht schließen, bevor Sie die Änderung an der web.config-Datei vornehmen.
<!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>
Schritt 4) Nun müssen Sie eine Änderung in der Datei web.config vornehmen. Diese Änderung bewirkt, dass bei jedem Anwendungsfehler eine benutzerdefinierte Fehlerseite angezeigt wird. Mit dem Tag `customErrors` lässt sich eine solche benutzerdefinierte Fehlerseite definieren. Die Eigenschaft `defaultRedirect` wird auf den Namen der im vorherigen Schritt erstellten benutzerdefinierten Fehlerseite gesetzt.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
Schritt 5) Fügen wir nun etwas fehlerhaften Code zur Seite demo.aspx.cs hinzu. Öffnen Sie diese Seite, indem Sie im Projektmappen-Explorer auf die Datei doppelklicken.
Fügen Sie den folgenden Code zur Datei Demo.aspx.cs hinzu.
- Diese Codezeilen dienen dazu, Textzeilen aus einer Datei zu lesen.
- Die Datei soll sich auf dem Laufwerk D befinden und den Namen Example.txt tragen.
- Aber in unserer Situation existiert diese Datei nicht wirklich. Dieser Code führt also zu einem Fehler, wenn die Anwendung ausgeführt wird.
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); } } }
Führen Sie nun den Code aus Visual Studio und Sie sollten die folgende Ausgabe erhalten.
Ausgabe:-
Die obige Seite zeigt an, dass in der Anwendung ein Fehler aufgetreten ist. Daher wird dem Benutzer die Seite ErrorPage.html angezeigt.
Unbehandelte ASP.NET-Ausnahme
Selbst im optimalen Fall können unvorhergesehene Fehler auftreten. Angenommen, ein Benutzer ruft die falsche Seite der Anwendung auf. Dies ist unvorhersehbar. In solchen Fällen kann ASP.NET den Benutzer auf die Fehlerseite (ErrorPage.html) weiterleiten.
Betrachten wir dazu ein Beispiel.
- Wir werden unsere DemoApplication verwenden, die die ErrorPage.html enthält.
- Und wir werden versuchen, eine Webseite anzuzeigen, die in unserer Anwendung nicht vorhanden ist.
- In diesem Fall sollten wir auf unsere ErrorPage.html-Seite weitergeleitet werden. Schauen wir uns die Schritte an, um dies zu erreichen.
Schritt 1) Lassen Sie uns an unserer Demoanwendung arbeiten. Öffnen Sie die Datei Global.asax.cs im Projektmappen-Explorer.
Hinweis: Die Datei Global.asax.cs dient dazu, Code hinzuzufügen, der auf allen Seiten der Anwendung anwendbar ist.
Schritt 2) Fügen Sie die folgende Codezeile in die Datei Global.asax.cs ein. Diese Zeilen werden verwendet, um auf Fehler zu prüfen und die Seite ErrorPage.html entsprechend anzuzeigen.
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 Erläuterung:-
- Die erste Zeile ist der Ereignishandler für Application_Error. Dieses Ereignis wird immer dann aufgerufen, wenn in einer Anwendung ein Fehler auftritt. Beachten Sie, dass der Ereignisname Application_Error lauten muss und die Parameter wie oben angegeben sein sollten.
- Als nächstes definieren wir ein Objekt vom Klassentyp HttpException. Dies ist ein Standardobjekt, das alle Details des Fehlers enthält. Anschließend verwenden wir die Methode Server.GetLastError, um alle Details des letzten in der Anwendung aufgetretenen Fehlers abzurufen.
- Anschließend prüfen wir, ob der Fehlercode des letzten Fehlers 404 lautet (der Fehlercode 404 ist der Standardcode, der zurückgegeben wird, wenn ein Benutzer eine nicht gefundene Seite aufruft). Falls der Fehlercode übereinstimmt, leiten wir den Benutzer auf die Seite ErrorPage.html weiter.
Führen Sie den Code nun in Visual Studio aus. Sie sollten die unten stehende Ausgabe erhalten.
Ausgabe:-
Durchsuchen Sie die Seite http://localhost:53003/Demo1.aspx. Denken Sie daran, dass Demo1.aspx in unserer Anwendung nicht vorhanden ist. Sie erhalten dann die folgende Ausgabe.
Die obige Seite zeigt an, dass in der Anwendung ein Fehler aufgetreten ist. Daher wird dem Benutzer die Seite ErrorPage.html angezeigt.
ASP.NET-Fehlerprotokollierung
Durch die Protokollierung von Anwendungsfehlern wird dem Entwickler die spätere Fehlersuche und -behebung erleichtert. ASP.NET bietet die Möglichkeit, Fehler zu protokollieren. Dies geschieht in der Datei Global.asax.cs, sobald ein Fehler auftritt. Während der Fehlererfassung kann die Fehlermeldung in eine Protokolldatei geschrieben werden.
Betrachten wir dazu ein Beispiel.
- Wir werden unsere DemoApplication verwenden, die die ErrorPage.html enthält.
- Und wir werden versuchen, eine Webseite anzuzeigen, die in unserer Anwendung nicht vorhanden ist.
- In diesem Fall sollten wir auf unsere Seite ErrorPage.html weitergeleitet werden.
- Gleichzeitig schreiben wir die Fehlermeldung in eine Protokolldatei. Schauen wir uns die einzelnen Schritte dazu an.
Schritt 1) Lassen Sie uns an unserer Demoanwendung arbeiten. Öffnen Sie die Datei Global.asax.cs im Projektmappen-Explorer.
Schritt 2) Fügen Sie die folgende Codezeile in die Datei Global.asax.cs ein. Sie prüft auf Fehler und zeigt die Seite ErrorPage.html entsprechend an. Gleichzeitig werden die Fehlerdetails in einer Datei namens AllErrors.txt protokolliert. In unserem Beispiel erstellen wir diese Datei auf dem Laufwerk 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 Erläuterung:-
- Die erste Zeile dient dazu, den Fehler selbst mithilfe der Methode Server.GetLastError abzurufen. Dieser wird dann der Variablen exc zugewiesen.
- Anschließend erstellen wir eine leere String-Variable namens `str`. Die eigentliche Fehlermeldung rufen wir über die Eigenschaft `exc.Message` ab. Diese Eigenschaft enthält die genaue Fehlermeldung für jeden Fehler, der beim Ausführen der Anwendung auftritt. Diese Meldung wird dann der String-Variablen zugewiesen.
- Als Nächstes definieren wir die Datei „AllErrors.txt“. Dorthin werden alle Fehlermeldungen gesendet. Wir schreiben die Zeichenkette „str“, die alle Fehlermeldungen enthält, in diese Datei.
- Abschließend übertragen wir den Benutzer in die Datei ErrorPage.html.
Ausgabe:-
Durchsuchen Sie die Seite http://localhost:53003/Demo1.aspx. Denken Sie daran, dass Demo1.aspx in unserer Anwendung nicht vorhanden ist. Sie erhalten dann die folgende Ausgabe.
Wenn Sie gleichzeitig die Datei AllErrors.txt öffnen, sehen Sie die folgenden Informationen.
Die Fehlermeldung kann dann zu einem späteren Zeitpunkt zur Fehlerbehebung an den Entwickler weitergegeben werden.





























