ユーザーがアップロードしたファイルを処理する ASP.NET アプリケーションがあります。ブラウザが (マルチパート) POST リクエストを送信します。シンプルな HttpHandler があり、HttpRequest.Files を使用してアップロードされたファイルにアクセスします。Windows 2008 R2 の IIS7.5 で動作しています。
コレクションに含まれるファイルが 0 個であるというエラーが表示されることがあります。HttpRequest.InputStream を調べると、不完全な POST リクエストがあることがわかります。Content-Length ヘッダーは、実際よりも多くのデータが必要であることを示しています。
Fiddler を使用して再現することができます: - requestBody < Content-Length でリクエストを送信します。- アプリケーションは、HttpRequest.Params への最初の参照でハングします。- 接続を閉じてアプリケーションを再開する Fiddler を終了します。本体としての申請ロジックが未完成です(0ファイル)。
これは私たちが対処しなければならないシナリオであり、多くを行うことはできないと思います. 結局、ブラウザはいつでも接続を閉じる可能性があります。
IIS が不完全な POST 要求をアプリケーション層 (つまり、バッファ) に渡すのを防ぐスイッチがあるのではないかと思います。これにより、ApplicationLayer のエラー監視のノイズがいくらか解消されます。
ありがとう、ピョートル