応答ヘッダーにContent-Lengthを設定する必要がありますか?
質問
一部のレガシーコードを確認していますが、応答が無期限に停止するバグが見つかりました。
基本的な考え方は次のとおりです。
Response.Content-Type = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename" & someFileName)
Response.AddHeader("Content-Length", someStoredLength)
Response.BinaryWrite(someByteArray)
Response.Flush()
Response.End()
問題は、someStoredLengthがsomeByteArrayの実際のサイズよりはるかに大きいため、クライアントがそこに座ってファイルのダウンロードを待機している間、ブラウザが回転することです。
コンテンツの長さを指定するAddHeaderを削除することを考えています。これを行うと、すべてが正常に動作するように見えますが、何かを理解していないことが心配です。
このAddHeaderを削除しても大丈夫ですか?この問題に対処するためのより良い方法を見つけ出す必要がありますか?
解決
Content-Length行を次のように変更します。
Response.AddHeader("Content-Length", someByteArray.Length.ToString())
他のヒント
アプリケーション SHOULD (スクロールContent-Lengthまで)定義しますが、厳密に必須ではありません。
所属していません StackOverflow