1

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

4

3 回答 3

3

由于 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。

于 2008-09-26T14:16:28.330 回答
0

我的理解是,在 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 位之间切换的文章

于 2008-09-23T22:33:41.867 回答
0

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

于 2008-09-23T22:37:22.747 回答