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

我有一个运行Windows Server 2003 x64,R2,SP2的IIS6服务器安装程序。 一切都很好,我可以在IIS中托pipe网站,它的工作原理是我想要的。

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

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

如果我在x86开发机器上运行完全相同的代码,它的工作方式和预期的一样,但是应用程序仍然无法加载Odbc驱动程序,它也可以在我的x86 IIS7上运行; 我想避免为这个WebApp构build另一个生产Web服务器,所以任何帮助表示赞赏。

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

aspnet_regiis -enable -i

除了@dmo上面的回答,我不得不允许应用程序池来处理x86应用程序
要做到这一点打开IISpipe理器,然后select您希望它处理x86的应用程序池 ,并打开高级设置
现在find属性启用32位应用程序并设置为True。

你有其他的DLL可以在“任何”,而不是32位模式访问ODBC驱动程序? 这可能是你的问题,我们有一个类似的问题,并通过切换称为驱动程序的程序集仅32位解决了它,但离开了networking应用程序为“任何”(64位)。