私は、Webサービスから大量のデータを転送する必要があります。メタベースのIISバッファサイズを増やすのではなく、バッファされていないResponse.OutputStreamにバイトを直接ポンピングしたいと思います。ByteをResponse.OutputStreamに直接ポンピングする - バイト数を処理する方法?
Response.ClearHeaders();
Response.Clear();
Response.ContentType = "text/xml";
Response.Buffer = false;
int len = GetReport(protocolName, sourceName, reportName, pageIndex, pageSize, Response.OutputStream);
Response.End();
これは正常に動作しますが、私はそれらだけを取り出す後を取得されたバイト数を知ることができるので、私はん。ContentLengthヘッダーを設定することはできません。
int len = GetReport(protocolName, sourceName, reportName, pageIndex, pageSize, Response.OutputStream);
Response.AddHeader("Content-Length", len.ToString()); // can't do this
質問:私は本当に多くのオプションが存在しないと思います次の行は、例外を(あなたがコンテンツを返す開始した後にヘッダを追加することはできません)スローします。これを処理する唯一の方法は、メモリストリームなどの中間ストリームを導入し、ストリームの長さを取得し、ヘッダを設定してからそのストリームをResponse.Outputストリームにポンピングすることです。他のアイデアは?
この機能を変更できますか? – SLaks
はい、機能を変更できます。 – Brett