8

在 64 位系统中,是否有任何理由在 Framework 文件夹中使用 aspnet_regiis 而不是在 Framework64 上使用?即使对于编译为 x86 的应用程序,我也知道只需在 Framework64 中使用 exe 注册 aspnet 并将应用程序池设置为启用 32 位即可。

那么两者有什么区别呢?

4

1 回答 1

7

我在 MSDN 上找到了以下内容(http://msdn.microsoft.com/en-us/library/k6h9cz8h(v=vs.100).aspx):

32 位版本的 Aspnet_regiis.exe 仅将 32 位脚本映射添加到 Applicationhost.config 文件。64 位版本的 Aspnet_regiis.exe 将 32 位和 64 位脚本映射添加到 Applicationhost.config 文件。这样做是因为启用了 IIS 7.0 的 64 位版本的 Windows Vista、Windows Server 2008 或 Windows 7 安装也将支持 Windows on Windows 64 位 (WOW64)。

还,

Aspnet_regiis.exe 有 32 位和 64 位版本。对于 Windows Vista 和 Windows Server 2008,您可以在 64 位安装的 IIS 上运行 32 位版本的工具。这使您可以在同一个 64 位系统上运行混合的 32 位和 64 位工作进程。下表列出了在 64 位版本的 IIS 上运行 32 位版本的工具时适用的特殊情况和限制。

此后,它解释了 IIS6.0/7.0 的细节 - 引用了适用于 IIS7.0 的部分:

在 Windows Vista、Windows Server 2008 或 Windows 7 上,当您在 IIS 7 下运行 32 位版本的 Aspnet_regiis.exe 时,该工具不会自动设置 applicationPools 元素的 enable32BitAppOnWin64 属性。在默认的 64 位操作系统安装中,启用 Windows 64 上的 Windows,您可以使用 32 位 Aspnet_regiis.exe 配置 IIS 7,但您将无法运行任何 32 位应用程序,除非您明确更改enable32BitAppOnWin64 属性以启用在 Windows 64 上的 Windows 中运行应用程序。有关 IIS 7.0 配置选项的更多信息,请参阅 Applicationhost.config 文件中 applicationPools 元素的文档。

到目前为止,通过使用您在问题中描述的方法,我还成功地运行了 32 位 Web 应用程序。

于 2013-04-25T07:00:18.103 回答