标签 IIS 下的文章

IIS 超过响应缓冲区限制

IIS报错:

Response   对象   错误   'ASP   0251   :   80004005'
超过响应缓冲区限制
/test.asp,行   0
此   ASP   页的执行造成响应缓冲区超过其配置限制。

代码大概如下:

if request.querystring("table_name") <> "" then
table_name=request.querystring("table_name")
sql="SELECT f1,f2 FROM table_info WHERE table_name='"&table_name&"'"
set rs=conn.execute(sql)
do while not rs.eof or rs.bof
response.write rs(0)
loop
end if

因为知道是缓冲区大小超出限制,说明response.write输出了大量的数据。
默认情况下iis是开启了缓存的,所以要等到数据输出完毕然后才从内存将数据发送到浏览器输出。
所以我在代码前面加入:

response.buffer=false

来关闭缓存,也可以到iis ,网站 -> 启动缓存 -> 设置为false (IIS7)。
发现了大量同一个字段数据输出,才知道是没有写rs.movenext ,囧。
在loop上一行加上rs.movenext , 然后最好开启缓存,对性能绝对有提升。