需要在 64 位 Windows Server 上以 32 位模式运行 IIS 网站

需要在 64 位 Windows Server 上以 32 位模式运行 IIS 网站

我有一个运行 Windows Server 2003 x64、R2、SP2 的 IIS6 服务器设置。一切运行良好,我可以在 IIS 中托管网站,而且它完全按照我想要的方式运行。

问题是,我有一个 ASP.NET WebApp,它需要使用 32 位 Odbc 驱动程序。我已将 ASP.NET WebApp 设置为仅针对 x86 进行编译,但它仍然不起作用。

我也在服务器上尝试过这个命令来启用 x86 工作进程,但它也不起作用: cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true来自这里

应用程序仍然无法加载 Odbc 驱动程序,如果我在 x86 开发机器上运行完全相同的代码,它会按预期工作,它也可以在我的 x86 IIS7 上运行;我想避免为这个 WebApp 构建另一个生产 Web 服务器,因此任何帮助都值得感激。

答案1

除了在 win 64 上启用 32 位应用程序外,您还需要启用 32 位 asp.net IIS 集成。在 Windows\Microsoft.NET\Framework\v2.0.50727(不是 Framework64 目录)中运行:

aspnet_regiis-启用-i

答案2

除了 @dmo 上面回答的内容之外,我还必须允许应用程序池处理 x86 应用程序
为此,请打开 IIS 管理器,然后选择应用程序池你期望它处理 x86 并打开高级设置.
现在查找属性启用 32 位应用程序并设置为 True。

答案3

您是否有其他 dll 可以在“任意”模式下访问 ODBC 驱动程序,而不是 32 位模式?这可能是您的问题,我们遇到了类似的问题,并通过将调用驱动程序的程序集切换为仅 32 位来解决它...但将 Web 应用程序保留为“任意”(64 位)。

相关内容