PRB: Η εξαίρεση "ThreadAbortException" προκύπτει εάν χρησιμοποιείτε τις προτάσεις Response.End, Response.Redirect ή Server.Transfer

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 312629 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Εάν χρησιμοποιείτε τις μεθόδους Response.End, Response.Redirect ή Server.Transfer, προκύπτει μια εξαίρεση ThreadAbortException. Μπορείτε να χρησιμοποιήσετε μια πρόταση try-catch για τον εντοπισμό αυτής της εξαίρεσης.

Αιτία

Η μέθοδος Response.End τερματίζει την εκτέλεση της σελίδας και μεταφέρει την εκτέλεση στο συμβάν Application_EndRequest της διοχέτευσης συμβάντων της εφαρμογής. Η γραμμή του κώδικα που ακολουθεί τη μέθοδο Response.End δεν εκτελείται.

Αυτό το πρόβλημα εμφανίζεται στις μεθόδους Response.Redirect και Server.Transfer επειδή και οι δύο μέθοδοι πραγματοποιούν κλήση της μεθόδου Response.End εσωτερικά.

Προτεινόμενη αντιμετώπιση

Για την αντιμετώπιση αυτού του ζητήματος, χρησιμοποιείστε μία από τις ακόλουθες μεθόδους.
  • Για την μέθοδο Response.End πραγματοποιήστε κλήση της μεθόδου HttpContext.Current.ApplicationInstance.CompleteRequest αντί της Response.End για να παρακάμψετε την εκτέλεση κώδικα στο συμβάν Application_EndRequest.
  • Για τη μέθοδο Response.Redirect χρησιμοποιήστε μια υπερφόρτωση Response.Redirect(String url, bool endResponse) που μεταβιβάζει την τιμή false ώστε η παράμετρος endResponse να αποκλείσει την εσωτερική κλήση στη μέθοδο Response.End. Για παράδειγμα:
      Response.Redirect ("nextpage.aspx", false);
    						
    Αν χρησιμοποιήσετε αυτήν τη λύση, εκτελείται ο κώδικας που ακολουθεί τη μέθοδο Response.Redirect.
  • Αντί της μεθόδου Server.Transfer, χρησιμοποιήστε τη μέθοδο Server.Execute.

Κατάσταση

Αυτή η συμπεριφορά είναι αναμενόμενη.

Ιδιότητες

Αναγν. άρθρου: 312629 - Τελευταία αναθεώρηση: Παρασκευή, 30 Αυγούστου 2013 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 4.5
  • Microsoft ASP.NET 4.0
  • Microsoft ASP.NET 3.5
  • Microsoft ASP.NET 2.0
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Λέξεις-κλειδιά: 
kbexcepthandling kbprb KB312629

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com