企业服务器上的IIS 6.0 – 内存限制

我们希望将Web服务器从Windows 2003切换到Windows 2003 Enterprise(64位)以使用8GB的RAM。 IIS 6.0和ASPNET 1.1应用程序能够从这个改变中受益吗?

由于ASP.Net 1.1不支持x64,所以仅限于使用32位工作进程来运行IIS 6。 / 3GB交换机在x64上不做任何事情,但x64原生为32位进程提供了4 GB而不是2GB,因此您的工作进程将拥有更多可用内存。

您将需要将AppPools设置为32位:

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1 

你可以考虑将ASP.net内存从60%的应用程序调整到80%,我们已经取得了一些成功。

 <system.web> <processModel memoryLimit="80" /> </system.web> 

当您达到1.2GB到1.6GB的范围时,这可能会使应用程序池变得更加紧张。

其他要考虑的事情是,大多数ASP.Net 1.1应用程序在2.0应用程序池中运行时没有问题,使您可以轻松地将1.1 32位应用程序转换为2.0 64位应用程序。 这不需要任何重新编译,只需将应用程序池更改为2.0,然后使用上述ADSUTIL.VBS脚本(设置为0而不是1)切换到x64。

我的理解是在ASP.NET 1.1中有一个3 GB的虚拟地址空间限制,并且它从来没有与64位兼容,尽管2.0是。

你可以让IIS 6.0在64位操作系统上运行32位(即ASP.NET 1.1),但是它将以32位模式(以及托管的其他东西,包括ASP.NET 2.0站点)。

微软在32位和64位之间切换的文章

内存限制为2GB,除非您在进程中使用/ 3GB开关,而进程将为进程本身使用1GB的内核空间。 使用IIS超越3GB的唯一方法是运行64位版本。