ΕΠΙΔΙΌΡΘΩΣΗ: λαμβάνετε μια εξαίρεση System. ObjectDisposedException όταν προσπαθείτε να αποκτήσετε πρόσβαση σε ένα αντικείμενο Stream που επιστρέφεται από τη μέθοδο EndGetRequestStream στο .NET Framework 2,0


Συμπτώματα


Εξετάστε το ακόλουθο σενάριο. Στο Microsoft .NET Framework 2,0, μπορείτε να χρησιμοποιήσετε τη μέθοδο BeginGetRequestStream και τη μέθοδο EndGetRequestStream στην κλάση HttpWebRequest για να ολοκληρώσετε μια ασύγχρονη αίτηση HTTP. Σε αυτό το σενάριο, όταν προσπαθείτε να αποκτήσετε πρόσβαση στο αντικείμενο Stream που επιστρέφεται από τη μέθοδο EndGetRequestStream , λαμβάνετε μια εξαίρεση System. ObjectDisposedException . Σημείωση Αυτό το πρόβλημα παρουσιάζεται μόνο εάν έχετε ρυθμίσει την ιδιότητα Method στην κλάση HttpWebRequest σε μια ιδιότητα Protocol που αποστέλλει δεδομένα. Για παράδειγμα, μπορείτε να καθορίσετε την ιδιότητα Method για να καταχωρήσετε.

Αιτία


Αυτό το πρόβλημα παρουσιάζεται όταν ο διακομιστής Web επαναφέρει ή κλείνει τη σύνδεση μετά την αποστολή της κεφαλίδας HTTP από την εφαρμογή-πελάτη. Η κλάση HttpWebRequest επιχειρεί αυτόματα να ανοίξει ξανά μια σύνδεση με το διακομιστή Web για να ολοκληρώσει τη μεταφορά. Όταν η μεταφορά είναι επιτυχής, η μέθοδος EndGetRequestStream επιστρέφει εσφαλμένα το αντικείμενο Stream από την πρώτη αποτυχημένη προσπάθεια σύνδεσης, αντί για το αντικείμενο Stream από την επιτυχή προσπάθεια σύνδεσης. Όταν η εφαρμογή-πελάτης προσπαθεί να χρησιμοποιήσει αυτό το αντικείμενο ροής που έχει απορριφθεί, δημιουργείται μια εξαίρεση System. ObjectDisposedException .

Επίλυση


Πληροφορίες επείγουσας επιδιόρθωσης

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

Προϋποθέσεις

Πρέπει να έχετε εγκαταστήσει το .NET Framework 2,0 για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.

Απαίτηση επανεκκίνησης

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

Πληροφορίες αντικατάστασης επείγουσας επιδιόρθωσης

Αυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.

Πληροφορίες αρχείου

Η αγγλική έκδοση αυτής της επείγουσας επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για αυτά τα αρχεία παρατίθενται σε συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες αρχείου, μετατρέπεται σε τοπική ώρα. Για να εντοπίσετε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα ζώνη ώρας στο στοιχείο ημερομηνία και ώρα στον πίνακα ελέγχου.
Όνομα αρχείουΈκδοση αρχείουΜέγεθος αρχείουΗμερομηνίαΏρα
System.dll2.0.50727.1093.018.75201-May-200621:15

Κατάσταση


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

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


Για περισσότερες πληροφορίες σχετικά με την κλάση HttpWebRequest , επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:Για περισσότερες πληροφορίες σχετικά με την κλάση System. ObjectDisposedException , επισκεφθείτε την ακόλουθη τοποθεσία του MSDN στο Web:Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
824684 Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερώσεων λογισμικού της Microsoft