server 2003上跑asp超时问题
Posted in asp, iis on 01/22/2010 08:20 下午 by tunpishuang问题是,打开站点静态html文件和不需要连接oracle数据库的asp文件可以打开,有连数据库的文件无法打开。
尝试了各种方法,包括重新建立站点、重新建立应用池、分配权限等无果。
事件查看器报错是应用池超时。
最后
net stop w3svc
net start w3svc
搞定了。
太奇怪了。
问题是,打开站点静态html文件和不需要连接oracle数据库的asp文件可以打开,有连数据库的文件无法打开。
尝试了各种方法,包括重新建立站点、重新建立应用池、分配权限等无果。
事件查看器报错是应用池超时。
最后
net stop w3svc
net start w3svc
搞定了。
太奇怪了。
IIS报错:
Response 对象 错误 ‘ASP 0251 : 80004005′
超过响应缓冲区限制
/test.asp,行 0
此 ASP 页的执行造成响应缓冲区超过其配置限制。
代码大概如下:
1 2 3 4 5 6 7 8 | 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是开启了缓存的,所以要等到数据输出完毕然后才从内存将数据发送到浏览器输出。
所以我在代码前面加入:
1 | response.buffer=false |
来关闭缓存,也可以到iis ,网站 -> 启动缓存 -> 设置为false (IIS7)。
发现了大量同一个字段数据输出,才知道是没有写rs.movenext ,囧。
在loop上一行加上rs.movenext , 然后最好开启缓存,对性能绝对有提升。
IIS报错:
Service Unavailable
HTTP Error 503. The service is unavailable.
因为没有开启网站所对应的应用程序池。
囧。