ВИПРАВЛЕННЯ: під час спроби отримати доступ до об'єкта Stream, повернутого методом EndGetRequestStream у .NET Framework 2,0, з'являється виняткова ситуація System. ObjectDisposedException.


Ознаки


Розглянемо наведений нижче сценарій. У Microsoft .NET Framework 2,0 ви використовуєте метод Begingetrequeststream і метод endgetrequeststream у класі httpwebrequest , щоб завершити асинхронний http-запит. У цьому сценарії під час спроби отримати доступ до об'єкта Stream , повернутого методом Endgetrequeststream , отримано виняток System. ObjectDisposedException . Примітка. Ця проблема виникає лише в тому випадку, якщо ви встановили властивість " метод " в класі httpwebrequest до властивості протоколу, що завантажує дані. Наприклад, ви встановили властивість Method для публікації.

Причина


Ця проблема виникає, коли веб-сервер скидає або закриває підключення після того, як клієнтський застосунок надсилає заголовок HTTP. Клас Httpwebrequest автоматично намагається повторно відкрити підключення до веб-сервера, щоб завершити перенесення. Коли перенесення буде успішним, метод Endgetrequeststream неправильно Повертає об'єкт Stream від першої вдалої спроби підключення, замість об'єкта Stream із успішної спроби підключення. Коли програма клієнта намагається використовувати цей об'єкт, який потрібно утилізувати, система. ObjectDisposedException виняток буде викинуто.

Спосіб вирішення


Відомості про виправлення

Корпорацією Майкрософт випущено підтримуване виправлення. Однак це виправлення призначене для виправлення лише проблеми, описаної в цій статті. Застосуємо це виправлення лише до системний інтегратор, які відчувають цю конкретну проблему. Це виправлення може отримати додаткове тестування. Тому, якщо ви не позначилося на цій проблемі, радимо зачекати наступне оновлення програмного забезпечення, яке містить це виправлення. Щоб завантажити це виправлення з колекції кодів MSDN, перейдіть на веб-сайт Microsoft:Примітка. Колекція кодів MSDN відображає мови, для яких доступний виправлення. Якщо ваша мова не відображається, це означає, що сторінка ресурсу "бібліотека кодів" недоступна для цієї мови.Примітка. Якщо виникають додаткові проблеми або якщо потрібно виконати будь-які виправлення неполадок, можливо, знадобиться створити окремий запит на обслуговування. До додаткових питань технічної підтримки та питань, які не відповідають цим виправленням, буде застосовано звичайні витрати на обслуговування. Щоб отримати повний список телефонних номерів служби підтримки клієнтів Microsoft або створити окремий запит на обслуговування, перейдіть на веб-сайт Microsoft:

Попередні вимоги

Щоб застосовувати це виправлення, потрібно інсталювати .NET Framework 2,0.

Необхідність перезавантаження

Після інсталяції цього виправлення не потрібно перезавантажувати комп'ютер.

Відомості про заміну виправлення

Це виправлення не замінює жодних інших виправлень.

Відомості про файл

Англійська версія цього виправлення містить атрибути файлів (або новіші атрибути файлів), наведені в таблиці нижче. Дати й час для цих файлів наведено за всесвітнім координованим часом (UTC). Під час перегляду відомостей про файл його буде перетворено на місцевий час. Щоб визначити різницю між UTC і місцевим часом, скористайтеся вкладкою часовий пояс у елементі "Дата й час" на панелі керування.
Ім'я файлуВерсія файлуРозмір файлуДатаЧас
System.dll2.0.50727.1093 018 75201-May-200621:15

Стан


Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".

Додаткові відомості


Щоб отримати докладніші відомості про клас Httpwebrequest , перейдіть на веб-сайт MSDN для розробників (Microsoft):Щоб отримати докладніші відомості про програму System. ObjectDisposedException , перейдіть на такий веб-сайт MSDN:Щоб отримати докладні відомості, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
824684 Опис стандартної термінології, яка використовується для опису оновлень програмного забезпечення Microsoft