如果asp.net站点处于iis7集成管线模式下的时候,一旦遇到Response.Flush()方法的时候程序就会中断,既没有任何状态返回也没有任何错误提示。如果把站点弄成经典模式就完全没有问题。之后我又测试了一下
Response.Buffer = false;
Response.BufferOutput = false;
将输出缓存关闭了,只要Response.Write也会中断。现在的问题是如何在集成管线模式下用Flush()?因为条件特殊还必须用集成管线和Flush。谷歌百度都搜索遍了,没有讨论这个问题,请问各位大侠有没有什么办法。
不出错的地方贴上来下看看,据你描述来看,看不出什么问题。
问题出现在HttpResponse.UpdateNativeResponse方法内部,属于asp.net的系统bug,如需要解决这个问题,你可以制度返回的数据长度。
其实跟我上下文代码没什么关系,因为就算在Page_load里面就只写 Response.Flush() 这么一行都会出问题。
另外,你说指定返回的长度 Content-Length ,不过这个真不知道页面的代码会有多长,因为是动态的。
@az235:
这个微软都已经收集了2年多了,也不给解决么…………。或者是不是升级到.net 4.0才行?目前我用的3.5
@全球通: Content-Length 的长度是可以获得的,就算是动态的也好,至于升级的事情,你可以试试,反正成本不高
@全球通: 咋获取呢?在Flush前根本不知道后面有多少内容要输出的。
@az235: 咋获取呢?在Flush前根本不知道后面有多少内容要输出的。