环境: 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