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.

  • 🐞 Debugging: Mit Haltepunkten in Visual Studio wird die Ausführung angehalten, sodass Sie eine laufende ASP.NET-Seite Zeile für Zeile untersuchen können.
  • 🔎 Tracing: Der Weg zu trace in web.config fügt hinzu trace.axd listet jede Anfrage, ihren Statuscode und den Zeitpunkt auf.
  • 📄 Seite Tracing: Hinzufügen TracDer Wert e="true" in der Page-Direktive zeigt die Lebenszykluszeit einer einzelnen Seite an.
  • 🚧 Benutzerdefinierte Fehler: Das Tag customErrors leitet Benutzer auf eine benutzerfreundliche Fehlerseite weiter, wenn die Anwendung fehlschlägt.
  • 🧭 Unbehandelte Ausnahmen: Application_Error in Global.asax fängt unerwartete Fehler ab und leitet auf eine sichere Seite weiter.
  • 🗃️ Fehlerprotokollierung: Das Schreiben von Server.GetLastError-Details in eine Datei protokolliert Probleme zur späteren Fehlersuche.

ASP.NET-Seitenebene TracFehlersuche, Debugging und Fehlerbehandlung

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.

Debuggen Sie eine Anwendung in ASP.NET

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.

Debuggen Sie eine Anwendung in ASP.NET

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.

Debuggen Sie eine Anwendung in ASP.NET

  1. 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.
  2. 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.

Debuggen Sie eine Anwendung in ASP.NET

Ausgabe:-

Debuggen Sie eine Anwendung in ASP.NET

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.

Tracing in ASP.NET

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.

Ermöglichen tracSuche nach einer Anwendung in ASP.NET

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.

Ermöglichen tracSuche nach einer Anwendung in ASP.NET

<?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:-

Ermöglichen tracSuche nach einer Anwendung in ASP.NET

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:

  1. Der Zeitpunkt der Anfrage für die Webseite.
  2. Der Name der angeforderten Webseite.
  3. Der Statuscode der Webanfrage (ein Statuscode von 200 bedeutet, dass die Anfrage erfolgreich war).
  4. Ü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.

Ermöglichen tracSuche nach einer Anwendung in ASP.NET

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.

Seitenebene Tracing in ASP.NET

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.

Seitenebene Tracing in ASP.NET

<%@ 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:-

Seitenebene Tracing in ASP.NET

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.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die DemoApplication.
  2. Wählen Sie die Menüoption Hinzufügen->HTML-Seite.

Fehlerbehandlung in ASP.NET

Schritt 2) Im nächsten Schritt müssen wir der neuen HTML-Seite einen Namen geben.

  1. Geben Sie als Namen „ErrorPage“ an.
  2. Klicken Sie auf die Schaltfläche „OK“, um fortzufahren.

Fehlerbehandlung in ASP.NET

Schritt 3) Die Fehlerseite wird automatisch in Visual Studio geöffnet. Im Projektmappen-Explorer sehen Sie die hinzugefügte Datei.

Fehlerbehandlung in ASP.NET

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.

Fehlerbehandlung in ASP.NET

<!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.

Fehlerbehandlung in ASP.NET

<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.

Fehlerbehandlung in ASP.NET

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.

Fehlerbehandlung in ASP.NET

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:-

Fehlerbehandlung in ASP.NET

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.

Unbehandelte ASP.NET-Ausnahme

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.

Unbehandelte ASP.NET-Ausnahme

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:-

  1. 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.
  2. 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.
  3. 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.

Unbehandelte Ausnahme in ASP.NET

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.

ASP.NET-Fehlerprotokollierung

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.

ASP.NET-Fehlerprotokollierung

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:-

  1. Die erste Zeile dient dazu, den Fehler selbst mithilfe der Methode Server.GetLastError abzurufen. Dieser wird dann der Variablen exc zugewiesen.
  2. 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.
  3. 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.
  4. 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.

ASP.NET-Fehlerprotokollierung

Wenn Sie gleichzeitig die Datei AllErrors.txt öffnen, sehen Sie die folgenden Informationen.

ASP.NET-Fehlerprotokollierung

Die Fehlermeldung kann dann zu einem späteren Zeitpunkt zur Fehlerbehebung an den Entwickler weitergegeben werden.

Häufig gestellte Fragen

Ja. KI-Tools wie GitHub Copilot können Haltepunkte vorschlagen, Ausnahmen erklären und Korrekturen für ASP.NET-Code vorschlagen. RevSehen Sie sich jeden Vorschlag an und versuchen Sie, den Fehler selbst zu reproduzieren, da KI den anwendungsspezifischen Zustand falsch interpretieren kann.

Ja. Funktionen für maschinelles Lernen in Tools wie Azure Application Insights kann ungewöhnliche Spitzenwerte bei Ausnahmen oder langsame Anfragen automatisch kennzeichnen. Dies hilft Teams, Produktionsprobleme schneller zu finden als durch manuelles Durchsuchen von Rohprotokolldateien.

Nein. Wenn der Modus „customErrors“ deaktiviert ist, wird der Stack offengelegt. tracEs stellt ein Sicherheitsrisiko dar, jedem Besucher sensible Daten anzuzeigen. Verwenden Sie im Produktivbetrieb den Modus „RemoteOnly“ oder „On“, damit nur lokale Entwickler die vollständigen Fehlerdetails sehen.

RemoteOnly zeigt detaillierte Fehlerseiten nur Browsern auf dem lokalen Server an, während Remote-Benutzer auf die Standardumleitungsseite weitergeleitet werden. Dies stellt einen sicheren Mittelweg dar, um eine Live-Website zu debuggen, ohne Informationen preiszugeben.

Setzen Sie debug="false" im Kompilierungselement der web.config-Datei. Der Debug-Modus deaktiviert Optimierungen, verlängert Timeouts und erhöht den Speicherverbrauch. Daher sollten Produktionswebsites immer mit deaktiviertem Debug-Modus ausgeliefert werden. Visual Studio.

Nein. Ein offenes trace.axd kann Angreifern Header-, Sitzungs- und Servervariablen offenlegen. Setzen Sie localOnly auf „true“ oder deaktivieren Sie es. tracvollständig vor dem Einsatz tracDie Daten werden niemals externen Benutzern zugänglich gemacht.

Server.Transfer leitet die Anfrage an die Fehlerseite auf dem Server weiter, ohne den Browser zu verändern. URL oder eine Hin- und Rückreise. Response.Redirect sendet eine neue Anfrage an den Browser und aktualisiert die URL zur Fehlerseite.

Erfassen Sie die Fehlermeldung und den Stack. trace, angefordert URLZeitstempel und Benutzerkontext werden gespeichert. Diese Details ermöglichen es Entwicklern, den Fehler später zu reproduzieren. `Server.GetLastError` in `Application_Error` stellt die Ausnahme bereit, sodass Sie sie in eine Datei oder Datenbank schreiben können.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: