大きなファイルのアップロードを処理する HttpHandler (.NET Framework 4) を構築しようとしています。アイデアは、HttpWorkerRequestを取得して body-stream を読み取ることです。HttpWorkerRequestを使用します。GetPreloadedEntityBodyを使用して、受信した HTTP 本文の最初のチャンクを取得します。
プリロードされたエンティティを取得する方法は次のとおりです。
IServiceProvider provider = (IServiceProvider)context;
HttpWorkerRequest wr = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
byte[] entityBodyBytes = wr.GetPreloadedEntityBody();
これは、ローカル IIS (Windows XP では 5.1) または Visual Studio Web サーバーで Web サイトを実行するとうまく機能しますが、IIS 7 (統合モード) で実行すると、GetPreloadedEntityBodyメソッドは常に空のバイト配列を返します。
GetPreloadedEntityBodyメソッドの返されたバイト配列がIIS 7 で空である理由について何か考えはありますか?