我正在审核一些遗留代码,但我发现了一个导致响应无限期停留的错误。
这是基本想法:
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,还是应该找出一个更好的方法来处理这个问题?
答案 0 :(得分:10)
您的应用程序SHOULD(向下滚动到Content-Length)定义它,但是,它并不是严格要求的。
这是decent discussion个可能的选项。
答案 1 :(得分:8)
将Content-Length行更改为以下内容:
Response.AddHeader("Content-Length", someByteArray.Length.ToString())