[转]Windows Server 2003 64 位版本的 IIS 在 32 位模式下运行

IIS 6.0 可支持 32 位和 64 位两种模式。但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式。ASP.NET 1.1 只在 32 位模式下运行。而 ASP.NET 2.0 在 32 位或 64 位模式下都可以运行。因此,如果想要同时运行 ASP.NET 1.1 和 ASP.NET 2.0,必须在 32 位模式下运行 IIS。

     要在 ASP.NET 的不同版本之间切换,请访问以下 Microsoft Developer Network (MSDN) 网站以下载并安装 ASP.NET 1.1 和 ASP.NET 2.0:
http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx (http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx)

     例如,如果您正在运行 Microsoft Windows x64 Edition,请下载以下两种可再发行组件包: 
.NET Framework 版本 2.0 可再发行组件包 x64(64 位)
.NET Framework 版本 1.1 可再发行组件包

     安装可再发行组件包后,您就可以在 ASP.NET 的不同版本之间切换了。为此,应对每个 ASP.NET 版本完成以下操作步骤:

     ASP.NET 1.1,32 位版本
要运行 32 位版本的 ASP.NET 1.1,按照以下步骤操作: 
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
键入以下命令,安装 ASP.NET 1.1 版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i
确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 1.1.4322 的状态设置为允许。

    ASP.NET 2.0,32 位版本
要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作: 
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i
确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。

    ASP.NET 2.0,64 位版本
要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
键入以下命令禁用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -i
确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。
注意:ASP.NET 2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 2.0.40607。

以下内容来自:http://support.microsoft.com/?id=895976

     在 64 位版本的 Windows Server 2003 已安装 SP 1 的上, IIS 启动 32 位辅助进程或 64 位工作进程,根据为以下元数据库属性中的值: 
W 3 SVC / AppPool / Enable32bitAppOnWin64
IIS 6.0 启动 64 位工作进程 Enable32bitAppOnWin64 属性值为 0 时或当属性为缺少。 如果该 Enable32bitAppOnWin64 属性是存在属性,且值是 0 以外,IIS 6.0 将启动 32 位工作进程。

     IIS 6.0 不能确保该配置 ISAPI 筛选器 DLL 和 ISAPI 扩展 DLL 可以实际加载工作进程中。 您必须确保仅 32 位 ISAPI DLL 被配置为 32 位工作进程中加载或只有 64 位 ISAPI DLL 被配置为在 64 位工作进程中加载。

     如果配置 32 位 ISAPI 筛选器在 64 位工作进程中加载的 DLL 或配置 64 位 ISAPI 筛选器 DLL 加载 32 位工作进程中,与以下内容类似的错误消息可能被写入应用程序日志:
------------------------------------------
事件类型: 错误 
事件来源: W3SVC-WP 
事件类别: 无 
事件 ID: 2268

说明: 
无法加载站点 / 服务的所有 ISAPI 筛选器。 因此启动中止。 
数据: 0000: c 1 00 00 00 
------------------------------------------

     如果您配置 32 位 ISAPI 扩展 DLL 加载 64 位工作进程中,或者如果您配置 64 位 ISAPI 扩展 DLL 加载 32 位工作进程中,也可能会收到 500 错误响应的包含以下文本:
------------------------------------------
%1 不是有效的 Win 32 应用程序
------------------------------------------

     我们还建议您使用 32 位调试程序来解决 32 位 Web 应用程序。 或者,使用 64 位调试程序解决 64 位 Web 应用程序。 转储文件信息可能无法准确如果使用下列方法之一:
您可以使用 64 位调试程序调试一个 32 位进程或应用程序。
您使用 32 位调试器调试 64 位进程或应用程序。

原文地址:https://www.cnblogs.com/zfc2201/p/2225738.html