我们希望将Web服务器从Windows 2003切换到Windows 2003 Enterprise(64位)以使用8GB的RAM。 IIS 6.0和ASPNET 1.1应用程序是否能够从更改中受益?
答案 0 :(得分:3)
由于ASP.Net 1.1没有x64支持,因此您只能使用32位工作进程运行IIS 6。 / 3GB开关在x64上没有任何作用,但x64本身提供4位而不是2GB的32位进程,因此您可以为工作进程提供更多可用内存。
您需要将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脚本切换到x64(设置为0而不是1)。
答案 1 :(得分:0)
我的理解是,在ASP.NET 1.1中存在3 GB的虚拟地址空间限制,并且它从未使64位兼容,尽管2.0是。
您可以让IIS 6.0在64位操作系统上运行32位(即ASP.NET 1.1),但它将采用32位模式(以及其他任何托管的方式,包括ASP.NET 2.0站点)。
答案 2 :(得分:0)
内存限制为2GB,除非您在进程上使用/ 3GB开关,该进程将为进程本身使用1GB的内核空间。使用IIS超过3GB的唯一方法是运行64位版本。