Παρακολούθηση επιπέδου σελίδας Asp.Net, εντοπισμός σφαλμάτων, χειρισμός σφαλμάτων (παράδειγμα)

Πίνακας περιεχομένων:

Anonim

Σε οποιαδήποτε εφαρμογή, τα σφάλματα αναμένεται να προκύψουν κατά τη διαδικασία ανάπτυξης. Είναι σημαντικό να μπορείτε να ανακαλύψετε σφάλματα σε πρώιμο στάδιο.

Στο Visual Studio, μπορείτε να το κάνετε αυτό για εφαρμογές ASP.Net. Το Visual Studio χρησιμοποιείται για εντοπισμό σφαλμάτων και έχει τεχνικές χειρισμού σφαλμάτων για το ASP.Net.

Σε αυτό το σεμινάριο, θα μάθετε-

  • Τι είναι ο εντοπισμός σφαλμάτων στο ASP.NET;
  • Τι είναι το Tracing στο ASP.NET;
  • Ανίχνευση επιπέδου σελίδας
  • Χειρισμός σφαλμάτων: Εμφάνιση σελίδας προσαρμοσμένου σφάλματος
  • Εξαίρεση χωρίς χειρισμό ASP.NET
  • Καταγραφή σφαλμάτων ASP.NET

Τι είναι ο εντοπισμός σφαλμάτων στο ASP.NET;

Ο εντοπισμός σφαλμάτων είναι η διαδικασία προσθήκης σημείων διακοπής σε μια εφαρμογή. Αυτά τα σημεία διακοπής χρησιμοποιούνται για την παύση της εκτέλεσης ενός προγράμματος που εκτελείται. Αυτό επιτρέπει στον προγραμματιστή να κατανοήσει τι συμβαίνει σε ένα πρόγραμμα σε μια συγκεκριμένη χρονική στιγμή.

Ας πάρουμε ένα παράδειγμα προγράμματος. Το πρόγραμμα εμφανίζει μια συμβολοσειρά "Κάνουμε εντοπισμό σφαλμάτων" στον χρήστη. Ας υποθέσουμε ότι όταν εκτελούμε την εφαρμογή, για κάποιο λόγο, η συμβολοσειρά δεν εμφανίζεται. Για να προσδιορίσουμε το πρόβλημα πρέπει να προσθέσουμε ένα σημείο διακοπής. Μπορούμε να προσθέσουμε ένα σημείο διακοπής στη γραμμή κώδικα που εμφανίζει τη συμβολοσειρά. Αυτό το σημείο διακοπής θα διακόψει την εκτέλεση του προγράμματος. Σε αυτό το σημείο, ο προγραμματιστής μπορεί να δει τι πάει στραβά. Ο προγραμματιστής διορθώνει το πρόγραμμα αναλόγως.

Εδώ στο παράδειγμα, θα χρησιμοποιήσουμε το «DemoApplication» που δημιουργήθηκε σε προηγούμενα κεφάλαια. Στο παρακάτω παράδειγμα, θα δούμε

  • Πώς να κάνετε την εφαρμογή επίδειξης να εμφανίζει μια συμβολοσειρά
  • Πώς να προσθέσετε σημεία διακοπής σε μια εφαρμογή.
  • Τρόπος εντοπισμού σφαλμάτων στην εφαρμογή χρησιμοποιώντας αυτό το σημείο διακοπής.

Βήμα 1) Ας βεβαιωθούμε πρώτα ότι έχουμε ανοιχτή την εφαρμογή ιστού στο Visual Studio. Βεβαιωθείτε ότι το DemoApplication είναι ανοιχτό στο Visual Studio.

Βήμα 2) Τώρα ανοίξτε το αρχείο Demo.aspx.cs και προσθέστε την παρακάτω γραμμή κώδικα.

  • Προσθέτουμε απλώς τη γραμμή κώδικα Response.Write για να εμφανιστεί μια συμβολοσειρά.
  • Έτσι, όταν η εφαρμογή εκτελείται, θα πρέπει να εμφανίζει τη συμβολοσειρά "Αντιμετωπίζουμε σφάλματα" στο πρόγραμμα περιήγησης ιστού.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("We are debugging");}}}

Βήμα 3) Τώρα ας προσθέσουμε ένα σημείο διακοπής. Ένα σημείο διακοπής είναι ένα σημείο στο Visual Studio όπου θέλετε να σταματήσει η εκτέλεση του προγράμματος.

  1. Για να προσθέσετε ένα σημείο διακοπής, πρέπει να κάνετε κλικ στη στήλη όπου θέλετε να εισαχθεί το σημείο διακοπής. Έτσι, στην περίπτωσή μας, θέλουμε το πρόγραμμά μας να σταματήσει στη γραμμή κώδικα "Response.Write". Δεν χρειάζεται να προσθέσετε καμία εντολή για να προσθέσετε ένα σημείο διακοπής. Απλά πρέπει να κάνετε κλικ στη γραμμή στην οποία θέλετε να προσθέσετε ένα σημείο διακοπής.
  2. Μόλις γίνει αυτό, θα παρατηρήσετε ότι ο κωδικός επισημαίνεται με κόκκινο χρώμα. Επίσης, εμφανίζεται μια κόκκινη φούσκα στη στήλη δίπλα στη γραμμή κώδικα.

Σημείωση: - Μπορείτε να προσθέσετε πολλά σημεία διακοπής σε μια εφαρμογή

Βήμα 4) Τώρα πρέπει να εκτελέσετε την εφαρμογή σας χρησιμοποιώντας τη λειτουργία εντοπισμού σφαλμάτων. Στο Visual Studio, ορίστε την επιλογή μενού Debug-> Start Debugging.

Παραγωγή:-

Όταν εκτελέσετε σωστά όλα τα βήματα, η εκτέλεση του προγράμματος θα διακοπεί. Το Visual Studio θα μεταβεί στο σημείο διακοπής και θα επισημάνει τη γραμμή κώδικα με κίτρινο χρώμα.

Τώρα, εάν ο προγραμματιστής πιστεύει ότι ο κωδικός είναι λανθασμένος, η εκτέλεση μπορεί να διακοπεί. Ο κωδικός μπορεί στη συνέχεια να τροποποιηθεί ανάλογα. Για να συνεχίσετε το πρόγραμμα, ο προγραμματιστής πρέπει να κάνει κλικ στο κουμπί F5 στο πληκτρολόγιο.

Τι είναι το Tracing στο ASP.NET;

Η παρακολούθηση εφαρμογών επιτρέπει σε κάποιον να δει εάν τυχόν σελίδες που ζητήθηκαν οδηγούν σε σφάλμα. Όταν είναι ενεργοποιημένη η ανίχνευση, μια επιπλέον σελίδα που ονομάζεται trace.axd προστίθεται στην εφαρμογή. (Δείτε την παρακάτω εικόνα). Αυτή η σελίδα επισυνάπτεται στην εφαρμογή. Αυτή η σελίδα θα εμφανίσει όλα τα αιτήματα και την κατάστασή τους.

Ας δούμε πώς να ενεργοποιήσετε την ανίχνευση για μια εφαρμογή.

Βήμα 1) Ας δουλέψουμε στο «DemoApplication». Ανοίξτε το αρχείο web.config από το Solution Explorer.

Βήμα 2) Προσθέστε την παρακάτω γραμμή κώδικα στο αρχείο Web.config.

Η δήλωση ιχνών χρησιμοποιείται για να επιτρέψει την ανίχνευση για την εφαρμογή.

  • Χρησιμοποιείται το 'requestLimit' στη δήλωση ιχνών. Καθορίζει τον αριθμό των αιτημάτων σελίδας που πρέπει να εντοπιστούν.
  • Στο παράδειγμά μας, δίνουμε ένα όριο 40. Δίνουμε όριο επειδή μια υψηλότερη τιμή θα υποβαθμίσει την απόδοση της εφαρμογής.

Εκτελέστε το "demoapplication" στο Visual Studio.

Παραγωγή:-

Εάν τώρα κάνετε αναζήτηση στη διεύθυνση URL - http: // localhost: 53003 / trace.axd , θα δείτε τις πληροφορίες για κάθε αίτημα. Εδώ μπορείτε να δείτε εάν υπάρχουν σφάλματα σε μια εφαρμογή. Οι παρακάτω τύποι πληροφοριών εμφανίζονται στην παραπάνω σελίδα

  1. Η ώρα του αιτήματος για την ιστοσελίδα.
  2. Το όνομα της ιστοσελίδας που ζητείται.
  3. Ο κωδικός κατάστασης του αιτήματος ιστού. (κωδικός κατάστασης 200 σημαίνει ότι το αίτημα είναι επιτυχές).
  4. Οι λεπτομέρειες Προβολή που επιτρέπετε να προβάλετε περισσότερες λεπτομέρειες σχετικά με το αίτημα ιστού. Ένα παράδειγμα αυτού φαίνεται παρακάτω. Μια σημαντική αναλυτική πληροφορία που παρέχεται είναι οι πληροφορίες κεφαλίδας. Αυτές οι πληροφορίες δείχνουν ποιες είναι οι πληροφορίες που αποστέλλονται στην κεφαλίδα κάθε αιτήματος ιστού.

Ανίχνευση επιπέδου σελίδας

Η ανίχνευση σελίδας εμφανίζει όλες τις γενικές πληροφορίες σχετικά με μια ιστοσελίδα κατά την επεξεργασία της. Αυτό είναι χρήσιμο για τον εντοπισμό σφαλμάτων εάν μια σελίδα δεν λειτουργεί για οποιονδήποτε λόγο.

Το Visual Studio θα παρέχει λεπτομερείς πληροφορίες σχετικά με διάφορες πτυχές της σελίδας. Πληροφορίες όπως ο χρόνος για κάθε μέθοδο που καλείται στο αίτημα ιστού. Για παράδειγμα, εάν η εφαρμογή ιστού σας αντιμετωπίζει πρόβλημα απόδοσης, αυτές οι πληροφορίες μπορούν να βοηθήσουν στον εντοπισμό σφαλμάτων του προβλήματος. Αυτές οι πληροφορίες εμφανίζονται όταν η εφαρμογή εκτελείται στο Visual Studio.

Ας δούμε πώς να ενεργοποιήσετε την ανίχνευση μιας εφαρμογής σε επίπεδο σελίδας.

Βήμα 1) Ας εργαστούμε για την εφαρμογή επίδειξης. Ανοίξτε το αρχείο demo.aspx από το Solution Explorer

Βήμα 2) Προσθέστε την παρακάτω γραμμή κώδικα για να ενεργοποιήσετε τον εντοπισμό σελίδας. Στη δήλωση σελίδας, απλώς προσθέστε τη γραμμή Trace = "true". Αυτή η γραμμή κώδικα θα επιτρέψει την ανίχνευση επιπέδου σελίδας.

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

Τώρα όταν εμφανίζεται η ιστοσελίδα Demo.aspx, θα λάβετε πολλές πληροφορίες σχετικά με τη σελίδα. Πληροφορίες όπως ο χρόνος για κάθε πτυχή του κύκλου ζωής της σελίδας εμφανίζονται σε αυτήν τη σελίδα.

Χειρισμός σφαλμάτων: Εμφάνιση σελίδας προσαρμοσμένου σφάλματος

Στο ASP.Net, μπορείτε να έχετε προσαρμοσμένες σελίδες σφαλμάτων στους χρήστες. Εάν μια εφαρμογή περιέχει οποιοδήποτε είδος σφάλματος, μια προσαρμοσμένη σελίδα θα εμφανίσει αυτό το σφάλμα στον χρήστη.

Στο παράδειγμά μας, θα προσθέσουμε πρώτα μια σελίδα HTML. Αυτή η σελίδα θα εμφανίσει μια συμβολοσειρά στον χρήστη "Εξετάζουμε το πρόβλημα". Στη συνέχεια, θα προσθέσουμε κάποιον κωδικό σφάλματος στη σελίδα demo.aspx, έτσι ώστε να εμφανίζεται η σελίδα σφάλματος.

Ας ακολουθήσουμε τα παρακάτω βήματα

Βήμα 1) Ας εργαστούμε για την εφαρμογή επίδειξης. Ας προσθέσουμε μια σελίδα HTML στην εφαρμογή

  1. Κάντε δεξί κλικ στο DemoApplication στο Solution Explorer
  2. Επιλέξτε την επιλογή μενού «Προσθήκη» -> Σελίδα HTML

Βήμα 2) Στο επόμενο βήμα, πρέπει να δώσουμε ένα όνομα στη νέα σελίδα HTML.

  1. Καταχωρίστε το όνομα ως "ErrorPage".
  2. Κάντε κλικ στο κουμπί "OK" για να συνεχίσετε.

Βήμα 3) Η σελίδα σφάλματος θα ανοίξει αυτόματα στο Visual Studio. Εάν μεταβείτε στην Εξερεύνηση λύσεων, θα δείτε το αρχείο που προστέθηκε.

Προσθέστε τη γραμμή κώδικα "Εξετάζουμε το πρόβλημα" στη σελίδα HTML. Δεν χρειάζεται να κλείσετε το αρχείο HTML πριν κάνετε την αλλαγή στο αρχείο web.config.

We are looking into the problem

Βήμα 4) Τώρα πρέπει να κάνετε μια αλλαγή στο αρχείο web.config. Αυτή η αλλαγή θα ειδοποιήσει ότι κάθε φορά που παρουσιάζεται σφάλμα στην εφαρμογή, πρέπει να εμφανίζεται η προσαρμοσμένη σελίδα σφάλματος.

Η ετικέτα "customErrors" επιτρέπει τον ορισμό μιας προσαρμοσμένης σελίδας σφάλματος. Η ιδιότητα defaultRedirect ορίζεται στο όνομα της σελίδας του προσαρμοσμένου σφάλματος που δημιουργήθηκε στο προηγούμενο βήμα.

Βήμα 5) Τώρα ας προσθέσουμε κάποιο ελαττωματικό κώδικα στη σελίδα demo.aspx.cs. Ανοίξτε αυτήν τη σελίδα με διπλό κλικ πάνω στο αρχείο στην Εξερεύνηση λύσεων

Προσθέστε τον παρακάτω κώδικα στο αρχείο Demo.aspx.cs.

  • Αυτές οι γραμμές κώδικα έχουν σχεδιαστεί για να διαβάζουν τις γραμμές ενός κειμένου από ένα αρχείο.
  • Το αρχείο υποτίθεται ότι βρίσκεται στη μονάδα δίσκου D με το όνομα "Example.txt."
  • Αλλά στην περίπτωσή μας, αυτό το αρχείο δεν υπάρχει πραγματικά. Έτσι, αυτός ο κώδικας θα οδηγήσει σε σφάλμα κατά την εκτέλεση της εφαρμογής.

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

Τώρα εκτελέστε τον κώδικα στο Visual Studio και θα πρέπει να λάβετε την παρακάτω έξοδο.

Παραγωγή:-

Η παραπάνω σελίδα δείχνει ότι ένα σφάλμα προκλήθηκε στην εφαρμογή. Ως αποτέλεσμα, η σελίδα Error.html εμφανίζεται στον χρήστη.

Εξαίρεση χωρίς χειρισμό ASP.NET

Ακόμη και στα καλύτερα σενάρια, μπορεί να υπάρχουν περιπτώσεις σφαλμάτων που απλά δεν προβλέπονται.

Ας υποθέσουμε ότι εάν ένας χρήστης περιηγηθεί σε λάθος σελίδα στην εφαρμογή. Αυτό είναι κάτι που δεν μπορεί να προβλεφθεί. Σε τέτοιες περιπτώσεις, το ASP.Net μπορεί να ανακατευθύνει το χρήστη στο errorpage.html.

Ας δούμε ένα παράδειγμα σε αυτό.

  • Θα χρησιμοποιήσουμε το ίδιο «DemoApplication» που έχει το Errorpage.html.
  • Και θα προσπαθήσουμε να δούμε μια ιστοσελίδα που δεν υπάρχει στην εφαρμογή μας.
  • Σε αυτήν την περίπτωση θα πρέπει να ανακατευθυνθούμε στη σελίδα ErrorPage.html. Ας δούμε τα βήματα για να το επιτύχουμε.

Βήμα 1) Ας εργαστούμε για την εφαρμογή επίδειξης. Ανοίξτε το αρχείο Global.asax.cs από τον Solution Explorer

ΣΗΜΕΙΩΣΗ : Το αρχείο global.asax.cs χρησιμοποιείται για την προσθήκη κώδικα που θα ισχύει σε όλες τις σελίδες της εφαρμογής.

Βήμα 2) Προσθέστε την παρακάτω γραμμή κώδικα στο global.asax.cs. Αυτές οι γραμμές θα χρησιμοποιηθούν για τον έλεγχο σφαλμάτων και την αντίστοιχη εμφάνιση της σελίδας ErrorPage.html.

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

Επεξήγηση κώδικα: -

  1. Η πρώτη γραμμή είναι ο χειριστής συμβάντων Application_Error. Αυτό το συμβάν καλείται κάθε φορά που παρουσιάζεται σφάλμα σε μια εφαρμογή. Σημειώστε ότι το όνομα του συμβάντος πρέπει να είναι "Application_Error". Και οι παράμετροι πρέπει να είναι όπως φαίνεται παραπάνω.
  2. Στη συνέχεια, ορίζουμε ένα αντικείμενο του τύπου κλάσης HttpException. Αυτό είναι ένα τυπικό αντικείμενο που θα περιέχει όλες τις λεπτομέρειες του σφάλματος. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο Server.GetLastError για να λάβουμε όλες τις λεπτομέρειες του τελευταίου σφάλματος που προέκυψε στην εφαρμογή.
  3. Στη συνέχεια ελέγχουμε αν ο κωδικός σφάλματος του τελευταίου σφάλματος είναι 404. (Ο κωδικός σφάλματος 404 είναι ο τυπικός κωδικός που επιστρέφεται όταν ένας χρήστης περιηγείται σε μια σελίδα που δεν βρίσκεται). Στη συνέχεια, μεταφέρουμε τον χρήστη στη σελίδα ErrorPage.html εάν ο κωδικός σφάλματος αντιστοιχεί.

Τώρα εκτελέστε τον κώδικα στο Visual Studio και θα πρέπει να λάβετε την παρακάτω έξοδο

Παραγωγή:-

Περιηγηθείτε στη σελίδα http: // localhost: 53003 / Demo1.aspx . Θυμηθείτε ότι το Demo1.aspx δεν υπάρχει στην εφαρμογή μας. Στη συνέχεια θα λάβετε την παρακάτω έξοδο.

Η παραπάνω σελίδα δείχνει ότι ένα σφάλμα προκλήθηκε στην εφαρμογή. Ως αποτέλεσμα, η σελίδα Error.html εμφανίζεται στον χρήστη.

Καταγραφή σφαλμάτων ASP.NET

Καταγράφοντας σφάλματα εφαρμογής, βοηθά τον προγραμματιστή να εντοπίσει σφάλματα και να επιλύσει το σφάλμα αργότερα. Το ASP.Net έχει τη δυνατότητα καταγραφής σφαλμάτων. Αυτό γίνεται στο αρχείο Global.asax.cs όταν καταγράφεται το σφάλμα. Κατά τη διαδικασία λήψης, το μήνυμα σφάλματος μπορεί να γραφτεί σε αρχείο καταγραφής.

Ας δούμε ένα παράδειγμα σε αυτό.

  • Θα χρησιμοποιήσουμε το ίδιο DemoApplication που έχει το Errorpage.html.
  • Και θα προσπαθήσουμε να δούμε μια ιστοσελίδα που δεν υπάρχει στην εφαρμογή μας.
  • Σε αυτήν την περίπτωση θα πρέπει να ανακατευθυνθούμε στη σελίδα ErrorPage.html.
  • Ταυτόχρονα, θα γράψουμε το μήνυμα σφάλματος σε ένα αρχείο καταγραφής. Ας δούμε τα βήματα για να το επιτύχουμε.

Βήμα 1) Ας εργαστούμε για την εφαρμογή επίδειξης. Ανοίξτε το αρχείο Global.asax.cs από τον Solution Explorer

Βήμα 2) Προσθέστε την παρακάτω γραμμή κώδικα στο global.asax.cs. Θα ελέγξει για σφάλματα και θα εμφανίσει τη σελίδα ErrorPage.html αναλόγως. Επίσης, ταυτόχρονα, θα καταγράψουμε τις λεπτομέρειες σφάλματος σε ένα αρχείο που ονομάζεται "AllErrors.txt." Για παράδειγμα, θα γράψουμε κώδικα για να δημιουργήσουμε αυτό το αρχείο στη μονάδα δίσκου D.

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

Επεξήγηση κώδικα: -

  1. Η πρώτη γραμμή είναι να πάρει το ίδιο το σφάλμα χρησιμοποιώντας τη μέθοδο "Server.GetLastError". Στη συνέχεια αντιστοιχίζεται στη μεταβλητή «exc».
  2. Στη συνέχεια, δημιουργούμε μια κενή μεταβλητή συμβολοσειράς που ονομάζεται «str». Λαμβάνουμε το πραγματικό μήνυμα σφάλματος χρησιμοποιώντας την ιδιότητα "exc.Message". Η ιδιότητα exc.Message θα έχει το ακριβές μήνυμα για οποιοδήποτε σφάλμα εμφανίζεται κατά την εκτέλεση της εφαρμογής. Στη συνέχεια αντιστοιχίζεται στη μεταβλητή συμβολοσειράς.
  3. Στη συνέχεια, ορίζουμε το αρχείο που ονομάζεται "AllErrrors.txt." Εδώ θα σταλούν όλα τα μηνύματα σφάλματος. Γράφουμε τη συμβολοσειρά «str» που περιέχει όλα τα μηνύματα σφάλματος σε αυτό το αρχείο.
  4. Τέλος, μεταφέρουμε τον χρήστη στο αρχείο ErrorPage.html.

Παραγωγή:-

Περιηγηθείτε στη σελίδα http: // localhost: 53003 / Demo1.aspx . Θυμηθείτε ότι το Demo1.aspx δεν υπάρχει στην εφαρμογή μας. Στη συνέχεια θα λάβετε την παρακάτω έξοδο.

Και ταυτόχρονα, εάν ανοίξετε το αρχείο "AllErrors.txt", θα δείτε τις παρακάτω πληροφορίες.

Το μήνυμα σφάλματος μπορεί στη συνέχεια να μεταδοθεί στον προγραμματιστή αργότερα για σκοπούς εντοπισμού σφαλμάτων.

Περίληψη

  • Το ASP.Net έχει τη δυνατότητα να εκτελεί εντοπισμό σφαλμάτων και χειρισμό σφαλμάτων.
  • Ο εντοπισμός σφαλμάτων μπορεί να επιτευχθεί προσθέτοντας σημεία διακοπής στον κώδικα. Στη συνέχεια εκτελείται η επιλογή Έναρξη με εντοπισμό σφαλμάτων στο Visual Studio για να εντοπιστεί το σφάλμα
  • Η ανίχνευση είναι η δυνατότητα παροχής περισσότερων πληροφοριών κατά την εκτέλεση της εφαρμογής. Αυτό μπορεί να γίνει σε επίπεδο εφαρμογής ή σελίδας.
  • Σε επίπεδο σελίδας, ο κωδικός Trace = true πρέπει να προστεθεί στην οδηγία σελίδας.
  • Σε επίπεδο εφαρμογής, δημιουργείται μια επιπλέον σελίδα που ονομάζεται Trace.axd για την εφαρμογή. Αυτό παρέχει όλες τις απαραίτητες πληροφορίες ανίχνευσης.