我遇到了这里记录的问题:
http://support.microsoft.com/kb/914453
您可以访问Web应用程序或Web
来自使用
上的分块传输编码
基于Microsoft Windows Server 2003或
基于Microsoft Windows XP的
电脑。然后,浏览器或网络
应用程序停止响应。
当
wininet.dll文件接收
在
初始Winsock数据接收
操作。当这种行为发生时,
第二个winsock数据接收
操作只读取块标记。
例如,第二个winsock数据
接收操作只能读取
回车线馈送(CRLF)
插座。然后,wininet.dll文件
连续调用winsock
选择功能30秒。这个
文件正在等待接收更多数据。
但是,如果没有数据到达,则
浏览器或Web应用程序停止
回应。
这个问题发生在我实现的从数据库检索文件的httphandler上。相关代码为:
var buffer = GetSomeByteArray();
context.Response.Clear();
context.Response.ContentType = type;
context.Response.BinaryWrite(buffer);
context.Response.End();
我可以通过关闭动态压缩或不将.axd指定为可压缩文件类型来禁用iis 6级别的分块编码,但我不希望这样做。我的问题是,我的代码中是否有错误或者我没有做的事情会阻止浏览器接收不完整的块?