情形1:上傳下載時出此錯誤:
在測試ASP做一個文件下載頁面,用ADODB.Stream來操作文件下載達到隱藏真實路徑的目的,因為是本地測試,所以一開始用的是一個63.8M的文件做下載測試,卻提示如下的錯誤:
Response 對象 錯誤 'ASP 0251 : 80004005'
超過響應緩沖區(qū)限制
/showuser.asp,行 0
此 ASP 頁的執(zhí)行造成響應緩沖區(qū)超過其配置限制。
想起IIS6下面文件上傳默認的是200K,默認的緩沖會不會也有這個限制?于是將測試文件換成一個100K的,程序順利通過,看來真是有這個限制,于是打開c:\windows\system32\inesrv\下的metabase.xml來看,搜索Buffer,一共找到四個,借助金山詞霸確定是572行的AspBufferingLimit="4194304",換算了一下是4096(4M),于是將測試下載的文件又換成一個3.8M的,程序也順利通過,再將測試文件換成一個5.1M的,又出現(xiàn)上面的錯誤,看來引起錯誤的原因應該是這個了,于是我在“4194304”加多了一個“0”,5.1的文件也可以順利下載了,問題解決。
注意:改metabase.xml前必須先在服務里關閉iisadminservice服務,改完之后再重啟IIS服務,或者打開IIS,在計算機名上點右鍵,選屬性,勾選第一項“允許直接編輯配置數(shù)據(jù)庫”,如果修改之后程序運行超時,可適當調(diào)整默認的超時時間,還有加大默認緩沖會不會導致其它問題我不清楚,由此引起的一切損失與本人無關,因此請自行決定是否采用.
情形2:正常讀取記錄出此錯誤:
本空間注:一般來說,這種錯誤經(jīng)常并非真是IIS緩沖不夠,而是代碼錯誤,如使用:do while not RS.Eof格式時,忘了在其中加上RS.MoveNext導致的。
因為頁面中數(shù)據(jù)較多,有上千條,導致出現(xiàn)“超過響應緩沖區(qū)限制。此 ASP 頁的執(zhí)行造成響應緩沖區(qū)超過其配置限制。”。
如果response.buffer=false這樣設的話,可以查出,但是好慢。怎么解決?
我們可以加大Buffer的緩沖區(qū),辦法是:
先在服務里關閉iisadminservice服務
找到windows\system32\inesrv\下的metabase.xml,
打開,找到 AspBufferingLimit 把他修改為需要的值,默認為4194304,即4096KB
建議把它修改為41943040(40M)或適合的數(shù)值,取決于服務器內(nèi)存是否足夠大。
然后重啟iisadminservice服務。
注意事項:
1、要注意服務器內(nèi)存量是否足夠。
2、還有因為數(shù)據(jù)量比較大,相應的還要修改ASP處理時間,即:
修改"AspScriptTimeout" 默認值90 (秒)
修改"AspSessionTimeout" 默認值20 (分鐘)
該文章在 2011/1/12 15:14:20 編輯過