ΕΠΙΔΙΌΡΘΩΣΗ: Μια εφαρμογή που βασίζεται στο Microsoft .NET Framework 2.0 Service Pack 2 και που εκτελεί ασύγχρονη κλήση υπηρεσίας Web δημιουργεί μια εξαίρεση σε έναν υπολογιστή που εκτελεί Windows 7

Συμπτώματα

Σε έναν υπολογιστή που εκτελεί Windows 7, αντιμετωπίζετε ένα ή περισσότερα από τα ακόλουθα συμπτώματα.

Το σύμπτωμα 1

Εξετάστε το ακόλουθο σενάριο:
  • Μπορείτε να εκτελέσετε μια ασύγχρονη υπηρεσία Web που χρησιμοποιεί το Microsoft .NET Framework 2.0 Service Pack 2 (SP2) σε ένα διακομιστή.

  • Η ασύγχρονη λειτουργία HttpWebRequest στέλνει μια αίτηση στην υπηρεσία Web.
  • Η υπηρεσία Web δημιουργεί μια εξαίρεση.
Σε αυτό το σενάριο, η ασύγχρονη λειτουργία HttpWebRequest δεν καλέσετε τη μέθοδο BeginGetResponse ή η λειτουργία επιστροφής κλήσης. Ωστόσο, η ασύγχρονη λειτουργία HttpWebRequest απροσδόκητα η λειτουργία έχει ολοκληρωθεί. Η υπηρεσία Web στη συνέχεια σταματά να ανταποκρίνεται. Επιπλέον, η χρήση της CPU του διακομιστή ενδέχεται να αυξηθεί σε 100 τοις εκατό και, στη συνέχεια, ο διακομιστής σταματά να ανταποκρίνεται.

Σύμπτωμα 2

Εξετάστε το ακόλουθο σενάριο:
  • Μπορείτε να εκτελέσετε μια εφαρμογή που βασίζεται στο .NET Framework 2.0 SP2 που καλεί μια υπηρεσία Web, χρησιμοποιώντας τα στοιχεία προγράμματος-πελάτη της υπηρεσίας Microsoft ASP.NET Web Microsoft. Για παράδειγμα, παράγεται από τη διαδικασία Wsdl.exe τον κώδικα της εφαρμογής ή η εφαρμογή καλεί την κλάση SoapHttpClientProtocol .
  • Ο υπολογιστής-πελάτης καλεί την κλήση υπηρεσίας Web ασύγχρονα.
  • Ο υπολογιστής-πελάτης αποστέλλει μια αίτηση σε ένα διακομιστή.
  • Ο υπολογιστής-πελάτης λαμβάνει στη συνέχεια μια απόκριση Web που έχει περιεχόμενο μηδενικού μήκους.
Όταν η υπηρεσία Web προσπαθεί να επεξεργαστεί αυτήν την απόκριση σε αυτό το σενάριο, ένα System.ArgumentNullException εξαίρεση. Στη συνέχεια, λαμβάνετε το ακόλουθο μήνυμα λάθους:
Η τιμή δεν είναι δυνατό να είναι null.
Σημείωση Αυτό το ζήτημα δεν παρουσιάζεται όταν ο υπολογιστής-πελάτης καλεί τη σύγχρονη κλήσης στην υπηρεσία Web.

Αιτία

Το σύμπτωμα 1

Αυτό το ζήτημα παρουσιάζεται επειδή ο χειρισμός εξαίρεσης .NET Framework δεν λαμβάνει υπόψη την περίπτωση κατά την οποία η μέθοδος HttpWebRequest.EndGetRequestStream δημιουργεί μια εξαίρεση κατά τη εξαίρεση περιέχει μια απόκριση από το διακομιστή.

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

Πληροφορίες άμεσης επιδιόρθωσης

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται για τη διόρθωση μόνο του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα.

Για να κάνετε λήψη αυτής της επείγουσας επιδιόρθωσης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft σύνδεση στο Web:

Κατάσταση

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

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

Για περισσότερες πληροφορίες σχετικά με τα ζητήματα που περιγράφονται στην ενότητα "Σύμπτωμα 1", κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

973134 ΕΠΙΔΙΌΡΘΩΣΗ: η υπηρεσία Web σταματά να ανταποκρίνεται και παρουσιαστεί εξαίρεση κατά την εκτέλεση μιας υπηρεσίας βασίζεται στο .NET Framework 2.0 S ασύγχρονη Web

Για περισσότερες πληροφορίες σχετικά με τα ζητήματα που περιγράφονται στην ενότητα "Σύμπτωμα 2", κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

973136 ΕΠΙΔΙΌΡΘΩΣΗ: ArgumentNullException μήνυμα λάθους εξαίρεσης όταν μια εφαρμογή που βασίζεται στο .NET Framework 2.0 S προσπαθήσει να επεξεργαστεί μια απάντηση με μηδενικό μήκος περιεχομένου σε μια ασύγχρονη αίτηση υπηρεσίας Web του ASP.NET: "Τιμή δεν μπορεί να είναι null"

Ιδιότητες

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

Σχόλια