現象
次のような状況を想定します。 Microsoft .NET Framework 2.0 では、 system.net.httpwebrequestクラスのBegingetrequeststreamメソッドとendgetrequeststreamメソッドを使って、非同期 HTTP 要求を完了します。 このシナリオでは、 Endgetrequeststreamメソッドによって返されるstreamオブジェクトにアクセスしようとすると、 ObjectDisposedException例外が発生します。 注: この問題は、 system.net.httpwebrequestクラスのMethodプロパティを、データをアップロードするプロトコルプロパティに設定した場合にのみ発生します。 たとえば、メソッドプロパティをPOSTに設定します。
原因
この問題は、クライアントアプリケーションが HTTP ヘッダーを送信した後、Web サーバーが接続をリセットまたは終了したときに発生します。 System.net.httpwebrequestクラスは、自動的に Web サーバーへの接続をもう一度開き、転送を完了しようとします。 転送が成功すると、 Endgetrequeststreamメソッドは、正常に接続しているときからのストリームオブジェクトではなく、最初に失敗した接続の試行からストリームオブジェクトを返します。 クライアントアプリケーションがこの破棄されたストリームオブジェクトを使おうとすると、 ObjectDisposedException例外がスローされます。
解決方法
修正プログラムの情報
サポートされている修正プログラムは、Microsoft から提供されています。ただし、この修正プログラムは、この記事で説明されている問題のみを修正することを目的としています。この修正プログラムは、この特定の問題が発生しているシステムにのみ適用してください。この修正プログラムは、追加のテストを受ける可能性があります。そのため、この問題で深刻な影響を受けていない場合は、この修正プログラムを含む次のソフトウェア更新プログラムを待つことをお勧めします。この修正プログラムを MSDN コードギャラリーからダウンロードするには、次の Microsoft Web サイトを参照してください。
http://code.msdn.microsoft.com/KB918462注: MSDN コードギャラリーには、修正プログラムが提供されている言語が表示されます。 目的の言語が一覧に表示されない場合は、その言語でコードギャラリーのリソースページが利用できないことが原因です。注: その他の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービスリクエストを作成することが必要になることがあります。 この特定の修正プログラムに該当しないその他のサポートの質問や問題については、通常のサポート料金が適用されます。 Microsoft カスタマサービスとサポートの電話番号の完全な一覧、または別のサービスリクエストを作成するには、次の Microsoft Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support
必要条件
この修正プログラムを適用するには、.NET Framework 2.0 がインストールされている必要があります。
再起動の必要性
この修正プログラムを適用した後、コンピューターを再起動する必要はありません。
修正プログラムの置き換えに関する情報
この修正プログラムは、他の修正プログラムに代わるものではありません。
ファイル情報
この修正プログラムの英語版には、次の表に記載されているファイル属性 (またはそれ以降のファイル属性) が含まれています。 これらのファイルの日付と時刻は世界協定時刻 (UTC) で記載されています。 ファイル情報を表示すると、ローカル時刻に変換されます。 UTC とローカル時刻の違いを確認するには、[コントロールパネル] の [日付と時刻] の [タイムゾーン] タブを使用します。
ファイル名 |
ファイル バージョン |
ファイル サイズ |
日付 |
時刻 |
---|---|---|---|---|
System.dll |
2.0.50727.109 |
3018752 |
01-May-2006 |
21:15 |
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
System.net.httpwebrequestクラスの詳細については、次の Microsoft デベロッパーネットワーク (MSDN) Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.aspxObjectDisposedExceptionクラスの詳細については、次の MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/system.objectdisposedexception.aspx詳細については、以下のマイクロソフト サポート技術情報番号をクリックしてください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明