[ASP][Solution]IIS6【ASP Buffer Overflow 】

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

 

sourceURL : http://www.dotblogs.com.tw/topcat/archive/2008/03/05/1212.aspx