Asp.Net Page Level Tracing, Debugging, Fehlerbehandlung (Beispiel)

Inhaltsverzeichnis:

Anonim

In jeder Anwendung können während des Entwicklungsprozesses Fehler auftreten. Es ist wichtig, Fehler frühzeitig erkennen 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 Fehlerbehandlungstechniken für ASP.Net.

In diesem Tutorial lernen Sie:

  • Was ist Debugging in ASP.NET?
  • Was ist die Ablaufverfolgung in ASP.NET?
  • Ablaufverfolgung auf Seitenebene
  • Fehlerbehandlung: Anzeigen einer benutzerdefinierten Fehlerseite
  • Nicht behandelte ASP.NET-Ausnahme
  • ASP.NET-Fehlerprotokollierung

Was ist Debugging in ASP.NET?

Beim Debuggen werden einer Anwendung Haltepunkte hinzugefügt. Diese Haltepunkte werden verwendet, um die Ausführung eines laufenden Programms anzuhalten. Auf diese Weise kann der Entwickler verstehen, was zu einem bestimmten Zeitpunkt in einem Programm geschieht.

Nehmen wir ein Beispiel für ein Programm. Das Programm zeigt dem Benutzer die Zeichenfolge "Wir debuggen" an. Angenommen, wenn wir die Anwendung ausführen, wird die Zeichenfolge aus irgendeinem Grund nicht angezeigt. Um das Problem zu identifizieren, müssen wir einen Haltepunkt hinzufügen. Wir können der Codezeile, die die Zeichenfolge anzeigt, einen Haltepunkt hinzufügen. Dieser Haltepunkt unterbricht die Ausführung des Programms. An diesem Punkt kann der Programmierer sehen, was möglicherweise falsch läuft. Der Programmierer korrigiert das Programm entsprechend.

Hier im Beispiel verwenden wir unsere 'DemoApplication', die in früheren Kapiteln erstellt wurde. Im folgenden Beispiel werden wir sehen

  • So lassen Sie die Demo-Anwendung eine Zeichenfolge anzeigen.
  • So fügen Sie einer Anwendung Haltepunkte hinzu.
  • So debuggen Sie die Anwendung mit diesem Haltepunkt.

Schritt 1) Stellen Sie zunächst sicher, dass unsere Webanwendung in Visual Studio geöffnet ist. Stellen Sie sicher, dass die DemoApplication 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 nur die Codezeile Response.Write hinzu, um eine Zeichenfolge 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 wir nun einen Haltepunkt hinzu. Ein Haltepunkt ist ein Punkt in Visual Studio, an dem die Ausführung des Programms gestoppt werden soll.

  1. Um einen Haltepunkt hinzuzufügen, müssen Sie auf die Spalte klicken, in die der Haltepunkt eingefügt werden soll. In unserem Fall möchten wir, dass unser Programm an der Codezeile "Response.Write" stoppt. Sie müssen keinen Befehl hinzufügen, um einen Haltepunkt hinzuzufügen. Sie müssen nur auf die Zeile klicken, in der Sie einen Haltepunkt hinzufügen möchten.
  2. Sobald dies erledigt ist, werden Sie feststellen, dass der Code rot markiert wird. Außerdem wird in der Spalte neben der Codezeile eine rote Blase angezeigt.

Hinweis: - Sie können einer Anwendung mehrere Haltepunkte hinzufügen

Schritt 4) Jetzt müssen Sie Ihre Anwendung im Debugging-Modus ausführen. Wählen Sie in Visual Studio die Menüoption Debug-> Debugging starten.

Ausgabe:-

Wenn Sie alle Schritte korrekt ausführen, wird die Ausführung des Programms unterbrochen. Visual Studio wechselt zum Haltepunkt und markiert die Codezeile gelb.

Wenn der Programmierer 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 Schaltfläche F5 auf der Tastatur klicken.

Was ist die Ablaufverfolgung in ASP.NET?

Mithilfe der Anwendungsverfolgung kann festgestellt werden, ob angeforderte Seiten zu einem Fehler führen. Wenn die Ablaufverfolgung aktiviert ist, wird der Anwendung eine zusätzliche Seite mit dem Namen trace.axd hinzugefügt. (Siehe Bild unten). Diese Seite ist der Anwendung beigefügt. Diese Seite zeigt alle Anfragen und deren Status.

Schauen wir uns an, wie Sie die Ablaufverfolgung für eine Anwendung aktivieren.

Schritt 1) Lassen Sie uns an unserer 'DemoApplication' arbeiten. Öffnen Sie die Datei web.config im Projektmappen-Explorer.

Schritt 2) Fügen Sie der Datei Web.config die folgende Codezeile hinzu.

Die Trace-Anweisung wird verwendet, um die Ablaufverfolgung für die Anwendung zu aktivieren.

  • Das 'requestLimit' in der trace-Anweisung wird verwendet. Es gibt die Anzahl der Seitenanforderungen an, die verfolgt werden müssen.
  • In unserem Beispiel geben wir ein Limit von 40 an. Wir geben ein Limit an, weil ein höherer Wert die Leistung der Anwendung beeinträchtigt.

Führen Sie die "Demoanwendung" in Visual Studio aus.

Ausgabe:-

Wenn Sie jetzt zur URL http: // localhost: 53003 / trace.axd navigieren , werden die Informationen für jede Anforderung angezeigt . Hier können Sie sehen, ob in einer Anwendung Fehler auftreten. Die folgenden Arten von Informationen werden auf der obigen Seite angezeigt

  1. Der Zeitpunkt der Anforderung für die Webseite.
  2. Der Name der angeforderten Webseite.
  3. Der Statuscode der Webanforderung. (Statuscode 200 bedeutet, dass die Anforderung erfolgreich ist).
  4. Die Details anzeigen, mit denen Sie weitere Details zur Webanforderung anzeigen können. Ein Beispiel hierfür ist unten dargestellt. Eine wichtige detaillierte Information sind die Header-Informationen. Diese Informationen zeigen, welche Informationen im Header jeder Webanforderung gesendet werden.

Ablaufverfolgung auf Seitenebene

Die Seitenverfolgung zeigt alle allgemeinen Informationen zu einer Webseite an, wenn diese verarbeitet wird. Dies ist beim Debuggen hilfreich, wenn eine Seite aus irgendeinem Grund nicht funktioniert.

Visual Studio bietet detaillierte Informationen zu verschiedenen Aspekten der Seite. Informationen wie die Zeit für jede Methode, die in der Webanforderung aufgerufen wird. Wenn Ihre Webanwendung beispielsweise ein Leistungsproblem aufweist, können diese Informationen beim Debuggen des Problems hilfreich sein. Diese Informationen werden angezeigt, wenn die Anwendung in Visual Studio ausgeführt wird.

Schauen wir uns an, wie Sie die Ablaufverfolgung für eine Anwendung auf Seitenebene aktivieren.

Schritt 1) Lassen Sie uns an unserer DemoApplication arbeiten. Öffnen Sie die Datei demo.aspx im Projektmappen-Explorer

Schritt 2) Fügen Sie die folgende Codezeile hinzu, um die Seitenverfolgung zu aktivieren. Fügen Sie in der Seitendeklaration einfach die Zeile Trace = "true" hinzu. Diese Codezeile ermöglicht die Ablaufverfolgung auf Seitenebene.

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

Wenn nun die Webseite Demo.aspx angezeigt wird, erhalten Sie viele Informationen über die Seite. Informationen wie die Zeit für jeden Aspekt des Seitenlebenszyklus werden auf dieser Seite angezeigt.

Fehlerbehandlung: Anzeigen einer benutzerdefinierten Fehlerseite

In ASP.Net können den Benutzern benutzerdefinierte Fehlerseiten angezeigt werden. Wenn eine Anwendung einen Fehler enthält, wird dieser Fehler dem Benutzer auf einer benutzerdefinierten Seite angezeigt.

In unserem Beispiel fügen wir zuerst eine HTML-Seite hinzu. Diese Seite zeigt dem Benutzer eine Zeichenfolge "Wir untersuchen das Problem" an. Wir werden dann unserer Seite demo.aspx einen Fehlercode hinzufügen, damit die Fehlerseite angezeigt wird.

Befolgen wir die unten genannten Schritte

Schritt 1) Lassen Sie uns an unserer DemoApplication arbeiten. Fügen wir der Anwendung eine HTML-Seite hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Demo-Anwendung
  2. 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.

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

Schritt 3) Die Fehlerseite wird automatisch in Visual Studio geöffnet. Wenn Sie zum Projektmappen-Explorer wechseln, wird die hinzugefügte Datei angezeigt.

Fügen Sie der HTML-Seite die Codezeile "Wir untersuchen das Problem" hinzu. Sie müssen die HTML-Datei nicht schließen, bevor Sie Änderungen an der Datei web.config vornehmen.

We are looking into the problem

Schritt 4) Jetzt müssen Sie eine Änderung in der Datei web.config vornehmen. Durch diese Änderung wird benachrichtigt, dass die benutzerdefinierte Fehlerseite angezeigt werden muss, wenn in der Anwendung ein Fehler auftritt.

Mit dem Tag 'customErrors' können Sie eine benutzerdefinierte Fehlerseite definieren. Die Eigenschaft defaultRedirect wird auf den Namen der Seite unseres benutzerdefinierten Fehlers festgelegt, die im vorherigen Schritt erstellt wurde.

Schritt 5) Fügen wir nun der Seite demo.aspx.cs einen fehlerhaften Code hinzu. Öffnen Sie diese Seite, indem Sie im Projektmappen-Explorer doppelt auf die Datei klicken

Fügen Sie der Datei Demo.aspx.cs den folgenden Code hinzu.

  • Diese Codezeilen dienen zum Lesen der Textzeilen aus einer Datei.
  • Die Datei soll sich auf dem Laufwerk D mit dem Namen 'Example.txt' befinden.
  • In unserer Situation existiert diese Datei jedoch 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 in Visual Studio aus und Sie sollten die folgende Ausgabe erhalten.

Ausgabe:-

Die obige Seite zeigt, dass in der Anwendung ein Fehler ausgelöst wurde. Infolgedessen wird dem Benutzer die Seite Error.html angezeigt.

Nicht behandelte ASP.NET-Ausnahme

Selbst in den besten Szenarien kann es zu Fehlerfällen kommen, die einfach nicht vorhergesehen werden.

Angenommen, ein Benutzer navigiert zur falschen Seite in der Anwendung. Dies kann nicht vorhergesagt werden. In solchen Fällen kann ASP.Net den Benutzer zur errorpage.html umleiten.

Sehen wir uns dazu ein Beispiel an.

  • Wir werden dieselbe '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 umgeleitet werden. Sehen wir uns die Schritte an, um dies zu erreichen.

Schritt 1) Lassen Sie uns an unserer DemoApplication arbeiten. Öffnen Sie die Datei Global.asax.cs im Projektmappen-Explorer

HINWEIS : Mit der Datei global.asax.cs wird Code hinzugefügt, der auf allen Seiten der Anwendung anwendbar ist.

Schritt 2) Fügen Sie die folgende Codezeile zur Datei global.asax.cs hinzu. Diese Zeilen werden verwendet, um nach Fehlern zu suchen und die Seite ErrorPage.html entsprechend anzuzeigen.

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

Code Erläuterung: -

  1. Die erste Zeile ist der Application_Error-Ereignishandler. Dieses Ereignis wird immer dann aufgerufen, wenn in einer Anwendung ein Fehler auftritt. Beachten Sie, dass der Ereignisname 'Application_Error' sein muss. Und die Parameter sollten wie oben gezeigt sein.
  2. Als nächstes definieren wir ein Objekt vom Klassentyp HttpException. Dies ist ein Standardobjekt, das alle Details des Fehlers enthält. Wir verwenden dann die Server.GetLastError-Methode, um alle Details des letzten Fehlers abzurufen, der in der Anwendung aufgetreten ist.
  3. Wir prüfen dann, ob der Fehlercode des letzten Fehlers 404 ist. (Der Fehlercode 404 ist der Standardcode, der zurückgegeben wird, wenn ein Benutzer zu einer Seite navigiert, die nicht gefunden wurde.) Wir übertragen den Benutzer dann auf die Seite ErrorPage.html, wenn der Fehlercode übereinstimmt.

Führen Sie nun den Code in Visual Studio aus und Sie sollten die folgende 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, dass in der Anwendung ein Fehler ausgelöst wurde. Infolgedessen wird dem Benutzer die Seite Error.html angezeigt.

ASP.NET-Fehlerprotokollierung

Durch das Protokollieren von Anwendungsfehlern kann der Entwickler den Fehler zu einem späteren Zeitpunkt debuggen und beheben. ASP.Net bietet die Möglichkeit, Fehler zu protokollieren. Dies erfolgt in der Datei Global.asax.cs, wenn der Fehler erfasst wird. Während des Erfassungsprozesses kann die Fehlermeldung in eine Protokolldatei geschrieben werden.

Sehen wir uns dazu ein Beispiel an.

  • Wir werden dieselbe 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 umgeleitet werden.
  • Gleichzeitig schreiben wir die Fehlermeldung in eine Protokolldatei. Sehen wir uns die Schritte an, um dies zu erreichen.

Schritt 1) Lassen Sie uns an unserer DemoApplication arbeiten. Öffnen Sie die Datei Global.asax.cs im Projektmappen-Explorer

Schritt 2) Fügen Sie die folgende Codezeile zur Datei global.asax.cs hinzu. Es wird nach Fehlern suchen und die Seite ErrorPage.html entsprechend anzeigen. Gleichzeitig werden wir die Fehlerdetails in einer Datei namens "AllErrors.txt" protokollieren. In unserem Beispiel schreiben wir Code, damit diese Datei auf dem Laufwerk D erstellt wird.

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

Code Erläuterung: -

  1. Die erste Zeile besteht darin, den Fehler selbst mithilfe der Methode 'Server.GetLastError' abzurufen. Dies wird dann der Variablen 'exc' zugeordnet.
  2. Wir erstellen dann eine leere Stringvariable namens 'str'. Wir erhalten die eigentliche Fehlermeldung über die Eigenschaft 'exc.Message'. Die Eigenschaft exc.Message enthält die genaue Meldung für jeden Fehler, der beim Ausführen der Anwendung auftritt. Dies wird dann der Stringvariablen zugewiesen.
  3. Als nächstes definieren wir die Datei 'AllErrrors.txt'. Hier werden alle Fehlermeldungen gesendet. Wir schreiben den String 'str', der alle Fehlermeldungen in diese Datei enthält.
  4. Schließlich ü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, werden die folgenden Informationen angezeigt.

Die Fehlermeldung kann dann zu einem späteren Zeitpunkt zu Debugging-Zwecken an den Entwickler weitergeleitet werden.

Zusammenfassung

  • ASP.Net bietet die Möglichkeit, Debugging und Fehlerbehandlung durchzuführen.
  • Das Debuggen kann durch Hinzufügen von Haltepunkten zum Code erreicht werden. Anschließend wird in Visual Studio die Option Mit Debuggen starten ausgeführt, um den Code zu debuggen.
  • Die Ablaufverfolgung ist die Möglichkeit, während der Ausführung der Anwendung weitere Informationen bereitzustellen. Dies kann auf Anwendungs- oder Seitenebene erfolgen.
  • Auf Seitenebene muss der Code-Direktive der Code Trace = true hinzugefügt werden.
  • Auf Anwendungsebene wird eine zusätzliche Seite mit dem Namen Trace.axd für die Anwendung erstellt. Dies liefert alle notwendigen Rückverfolgungsinformationen.