摘要:IIS6中【ASP回應緩衝區超過限制】問題處理
問題原因:
當ASP中如果設定【Response.Buffer=True】的時候,會將要送出的資料寫在Buffer中,當IIS處理完後,才會將整個結果一次送出。
這樣的處理有兩個作用:
- 讓使用者可以看到完整的結果(不會因斷線或其他原因只看到部分內容)
- 當迴圈送出資料並作檢查時,可以中斷並且下Response.Redirect到其他的畫面
然而有一好沒兩好,在IIS5中並沒有BufferMaxSize的設定,因此當無窮迴圈發生時,就會在Server上發現有個WebApp一直吃記憶體直到Server不正常當機
到了Windows2003的時候,預設Buffer的最大值是4MB,所以當輸出的資料內容超過Buffer的最大值時,就會出現【ASP回應緩衝區超過限制】的錯誤訊息。
解決:
如果真的有需要要用到這麼大的Buffer的話(建議還是部要這樣做),更改MetaBase的部分,可以下載一個方便的工具IIS6 Resource Kit Tools(iis60rkt.exe),裡面有個【IIS Metabase Exployer】的工具可以使用,找【AspBufferingLimit】
- LM→1→ROOT:設定整個網站
- LM→1→ROOT→(WebAppName):設定某WebApp
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |