如何强制IIS Express以32位模式运行?

时间:2013-04-25 23:53:08

标签: iis-express

我有一个经典的ASP应用程序,我试图在64位Windows上的IIS Express下运行。它使用Jet连接到Microsoft Access数据库,并且不能在64位下工作。

我为ASP应用程序创建了以下应用程序池,但它似乎忽略了enable32BitAppOnWin64属性,并且进程仍为64位。

<applicationPools>
    <add name="UnmanagedClassicAppPool32" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" enable32BitAppOnWin64="true" />
</applicationPools>

如何让IIS Express中的这个应用程序池以32位进程运行?

5 个答案:

答案 0 :(得分:96)

对于Visual Studio 2013     Visual Studio 2015     Visual Studio 2017:

 Tools
  -> Options
   -> Projects and Solutions
    -> Web Projects
     -> Uncheck "Use the 64 bit version of IIS Express for web sites and projects"`

答案 1 :(得分:39)

根据this,IIS Express 7.5仅作为32位应用程序提供。但是,IIS Express 8.0附带32位和64位版本的应用程序。可以在c:\program files (x86)\IIS Express\iisexpress.exe找到32位版本,可以在c:\program files\IIS Express\iisexpress.exe找到64位版本。

IIS Express忽略enable32BitAppOnWin64属性。要将应用程序池作为32位运行,必须执行32位版本的IIS Express。

您可以通过检查“进程”选项卡上的进程来确定任务管理器中正在运行的版本。 64位版本将显示为iisexpress.exe,32位版本将显示为iisexpress.exe *32

答案 2 :(得分:1)

在VS studio的IIS Express属性窗口中,将第一个选项:“托管应用程序池”从“集成”更改为“经典”

答案 3 :(得分:0)

你确定吗?

  

它使用Jet连接到Microsoft Access数据库,并且不能在64位下运行。

我遇到了同样的问题,并最终通过强制安装64位驱动程序解决了这个问题。最初由于错误导致失败,如果安装了Office 2010 32位,则无法安装64位驱动程序。

但是......您可以强制使用64位版本的Access数据库引擎(ACE)from here来安装&#39;被动&#39;切换:

AccessDatabaseEngine_x64.exe /passive

然后我能够使用当前的开发环境运行我的遗留代码。

答案 4 :(得分:0)

在您的 csproj 项目的 <Use64BitIISExpress>false</Use64BitIISExpress> 标签下添加 <PropertyGroup>

也可以通过用户界面点击项目属性 -> Web 选项卡 -> Bitness(更改为 x64)。