今天在写程序的时候,一不小心造成了程序陷入的死循环,导致了浏览器报错误如下:错误 'ASP 0251 : 80004005' 超过响应缓冲区限制。现在总结一下产生这个问题的原因。
从错误的提示我们不难看出,之所以错误的原因很明显是我们的内存缓冲区已经不够用了。在IIS5.0以后缓冲区默认都是打开的,那么造成这个错误的原因是什么呢?我想,总的来说可以有以下三点:
第一点,程序员也就是将缓冲区设置得太小,这个错误的可能性很小。
第二点,就是网页确实很大,已经超过了默认的大小200k,这种可能想也不大,因为很少有网页能够超过200k,但是也不排除例外,如果真是这样的情况,并且又使用缓冲的话,那么就需要扩大缓冲区的大小了。
第三点,就是程序出现了问题,例如死循环,造成网页太大。
针对上面的原因我们可以采取两种方法来改正这些错误:
第一种,打开c:\windows\system32\inesrv\下的metabase.xml来看,搜索Buffer,一共找到四个,借助金山词霸确定是572行的AspBufferingLimit="4194304",换算了一下是4096(4M),于是将测试下载的文件又换成一个3.8M大小的,程序顺利通过,再将测试文件换成一个5.1M大小的,又出现上面的错误,看来引起错误的原因应该是这个了,于是我在“4194304”后加了一个“0”,5.1M大小的文件也可以顺利下载了,问题解决。或者,不使用缓冲区,即在网页的开头设置response.buffer=false。
第二种,就是好好检查程序,提高程序的质量。
有话要说