環境: Windows 2003 Server(32位); IIS6,ASP.NET 2.0(3.5); 4Gb Ram; 1工作進程ASP.NET - 單個大型Web請求觸發器System.OutOfMemoryException - 仍有大量可用內存
我們有一個情況,我們有一個非常大的System.XmlDocument被加載到內存中,然後它進入一個編譯的XSL轉換。 發生什麼事情時,Web請求進入服務器正在與2500Mb的可用系統內存空閒狀態。
隨着XML DOM被填充,可用內存下降約500Mb,此時我們得到System.OutOfMemoryException事件。在這一點上,系統理論上仍然有2000Mb的可用內存可用於服務請求(根據Perfmon)。
我已經在相關的問題:
1)在堆棧中的什麼水平,這是內存不足的限制得到滿足? OS? IIS? ASP.NET?工作流程?這是每個Web請求限制嗎?
2)此限制是否可以在某處進行配置?
3)爲什麼不能訪問完整的可用系統內存?
我也想到了這一點,我認爲對操作系統的工作進程或對IIS工作進程的限制或對應用程序池的限制都有限制。祝你好運:\ – Shawn 2008-12-18 00:04:46
x86(32位)是一個痛苦的世界。我知道這是一個延伸,但是您可以在64位版本的Windows Server上運行此代碼嗎?在服務器上64位是非常多的,我的意思是這個字面上,*免費perforamnce * – 2008-12-18 04:34:03
謝謝傑夫,x64(和32GB內存)是2個月的時間了,所以我們可能只能掛在那裏。我喜歡在軟件問題上拋硬件! – 2008-12-18 09:10:47