IIS6中【ASP回應緩衝區超過限制】問題處理

摘要:IIS6中【ASP回應緩衝區超過限制】問題處理

問題原因:

當ASP中如果設定【Response.Buffer=True】的時候,會將要送出的資料寫在Buffer中,當IIS處理完後,才會將整個結果一次送出。

這樣的處理有兩個作用:

  1. 讓使用者可以看到完整的結果(不會因斷線或其他原因只看到部分內容)
  2. 當迴圈送出資料並作檢查時,可以中斷並且下Response.Redirect到其他的畫面

然而有一好沒兩好,在IIS5中並沒有BufferMaxSize的設定,因此當無窮迴圈發生時,就會在Server上發現有個WebApp一直吃記憶體直到Server不正常當機

到了Windows2003的時候,預設Buffer的最大值是4MB,所以當輸出的資料內容超過Buffer的最大值時,就會出現【ASP回應緩衝區超過限制】的錯誤訊息。

解決:

如果真的有需要要用到這麼大的Buffer的話(建議還是部要這樣做),更改MetaBase的部分,可以下載一個方便的工具IIS6 Resource Kit Tools(iis60rkt.exe),裡面有個【IIS Metabase Exployer】的工具可以使用,找【AspBufferingLimit】

  1. LM→1→ROOT:設定整個網站
  2. LM→1→ROOT→(WebAppName):設定某WebApp

 

 


以下是簽名:


Microsoft MVP
Visual Studio and Development Technologies
(2005~2019/6) 
topcat
Blog:http://www.dotblogs.com.tw/topcat