通过文件流输出的下载功能遇到的诡异问题

kingstaron 2013-02-02 11:31:48
通过文件流输出下载附件,内网下载没有问题,但外网访问下载时,前几次没有问题,多点几次就出现:502 Bad Gateway The server returned an invalid or incomplete response

之前我以为是下载大文件时,输出来不及响应造成的,但我改了代码,大文件分段输出了,每段只有10字节,但还是有问题。好奇怪啊!

iStream = new MemoryStream(d.Content);

long dataToRead = iStream.Length;

// Read the bytes.
while (dataToRead > 0)
{
// Verify that the client is connected.
if (Response.IsClientConnected)
{
// Read the data in buffer.
int length = iStream.Read(buffer, 0, 100);

// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);

// Flush the data to the HTML output.
Response.Flush();

buffer = new Byte[100];
dataToRead = dataToRead - length;
}
else
{
//prevent infinite loop if user disconnects
dataToRead = -1;
}
}
...全文
116 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
段传涛 2013-02-02
  • 打赏
  • 举报
回复
引用 1 楼 kingstaron 的回复:
问题解决了,居然是 Response.AddHeader("Content-Length ", contents.Length.ToString()); 中 "Content-Length " 多了空格,但是为什么内网就没问题 外网有问题呢????
支持 学习。
kingstaron 2013-02-02
  • 打赏
  • 举报
回复
问题解决了,居然是 Response.AddHeader("Content-Length ", contents.Length.ToString()); 中 "Content-Length " 多了空格,但是为什么内网就没问题 外网有问题呢????

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧