ΕΠΙΔΙΌΡΘΩΣΗ: Περιοδικά "υποκείμενη σύνδεση έκλεισε" μήνυμα λάθους όταν καλείτε μια υπηρεσία Web από το ASP.NET

Συμπτώματα

Όταν καλείτε μια υπηρεσία Microsoft ASP.NET Web από μια εφαρμογή ASP.NET, κατά διαστήματα που ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:
Η υποκείμενη σύνδεση έκλεισε: Παρουσιάστηκε μη αναμενόμενο σφάλμα σε μια αποστολή.
Η στοίβα κλήσης είναι παρόμοιο με το ακόλουθο:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. At System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at 
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at
...

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

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται για τη διόρθωση μόνο του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως το επόμενο service pack του Microsoft .NET Framework που περιέχει αυτήν την επείγουσα επιδιόρθωση.

Για να επιλύσετε αυτό το ζήτημα αμέσως, επικοινωνήστε με υπηρεσίες υποστήριξης πελατών της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσίες υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ίσως ακυρωθούν εάν ο επαγγελματίας υποστήριξης της Microsoft κρίνει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.

Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα Zώνη ώρας στο στοιχείο Hμερομηνία και ώρα " στον πίνακα ελέγχου.
   Date         Time   Version       Size       File name                    Platform
----------------------------------------------------------------------------------
01-May-2003 12:48 1.0.3705.426 20,480 Perfcounter.dll X86
01-May-2003 12:48 1.0.3705.426 1,175,552 System.dll X86
01-May-2003 12:48 1.0.3705.426 311,296 System.runtime.remoting.dll X86
01-May-2003 12:48 1.0.3705.426 503,808 System.web.services.dll X86
Αυτή η επείγουσα επιδιόρθωση περιλαμβάνεται στο το .NET Framework 1.0 Service Pack 3 και το .NET Framework 1.1 Service Pack 1.

Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης του τελευταίου service pack του .NET Framework 1.0, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

318836 Τρόπος λήψης του τελευταίου service pack του .NET Framework 1.0

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Περισσότερες πληροφορίες

Το μήνυμα λάθους που αναφέρεται στην ενότητα "Συμπτώματα" ενδέχεται επίσης να παρουσιαστεί για βάσιμους λόγους. Για παράδειγμα, η υποκείμενη σύνδεση ενδέχεται να έχουν κλείσει για λόγους που είναι πέρα από το στοιχείο ελέγχου του προγράμματος-πελάτη. Σε τέτοιες περιπτώσεις, το Microsoft .NET Framework συμπεριφέρεται σωστά.

Για παράδειγμα, εάν οι υπηρεσίες Web που ονομάζονται φιλοξενούνται σε ένα λογισμικό ή ένα υλικό εξισορρόπηση φόρτου περιβάλλον που περιέχει διακομιστές που υποστηρίζουν το HTTP 1.1 και διατήρηση ενεργών συνδέσεων, ενδέχεται να έχει τερματίσει τη σύνδεση από το χρόνο που ο υπολογιστής-πελάτης προσπαθεί να χρησιμοποιήσει ξανά τη σύνδεση. Εάν το σφάλμα εξακολουθεί να παρουσιάζεται μετά την εφαρμογή αυτής της ενημέρωσης κώδικα, δοκιμάστε τις παρακάτω λύσεις:
  • Ρυθμίστε την τοποθεσία Web που φιλοξενεί τις υπηρεσίες Web ώστε να μην χρησιμοποιούν συνδέσεις διατήρησης εν ενεργεία. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Ανοίξτε την Κονσόλα διαχείρισης της Microsoft Internet Information Server (IIS) και εντοπίστε το διακομιστή Web.
    2. Κάντε κλικ στην καρτέλα " τοποθεσία Web " της σελίδας ιδιοτήτων για την τοποθεσία Web.
    3. Κάντε κλικ για να καταργήσετε την επιλογή του πλαισίου ελέγχου Δυνατότητα διατήρησης ως ενεργών HTTP .
  • Βεβαιωθείτε ότι σας εξισορρόπησης φόρτου υλικό ή λογισμικό έχει ρυθμιστεί σωστά για τις απαιτήσεις της εφαρμογής σας.
  • Εάν δεν έχετε έλεγχο επί του περιβάλλοντος του διακομιστή που φιλοξενεί τις υπηρεσίες Web που καλείτε, ίσως χρειαστεί να απενεργοποιήσετε συνδέσεις διατήρησης εν ενεργεία στην πλευρά προγράμματος-πελάτη. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Ορίστε την ιδιότητα διατήρησης εν ενεργεία το
      Κλάση HttpWebRequest στην τιμή false.
    2. Παράκαμψη της μεθόδου HttpWebRequest στο αρχείο Reference.cs που δημιουργείται από το Microsoft Visual Studio .NET για το διακομιστή μεσολάβησης υπολογιστή-πελάτη Web. Ο ακόλουθος κώδικας αντικαθιστά τη μέθοδο HttpWebRequest .
      protected override WebRequest GetWebRequest(Uri uri) {
      HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);

      webRequest.KeepAlive = false;

      return webRequest;
      }

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης του .NET Framework 1.1 Service Pack 1, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

885055 τον τρόπο απόκτησης του Microsoft .NET Framework 1.1 Service Pack 1

Ιδιότητες

Αναγνωριστικό άρθρου: 819450 - Τελευταία αναθεώρηση: 17 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια