10

我正在审查一些遗留代码,我发现了一个导致响应无限期停留的错误。

这是基本思想:

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 还是我应该想出一个更好的方法来处理这个问题?

4

2 回答 2

10

您的应用程序应该(向下滚动到 Content-Length)定义它,但是,它不是严格要求的。

这是对可能选项的体面讨论

于 2009-09-11T18:44:59.880 回答
10

将 Content-Length 行更改为以下内容:

Response.AddHeader("Content-Length", someByteArray.Length.ToString())
于 2009-09-11T18:48:35.343 回答