How can I force IIS Express to run in 32 bit mode?

2019-01-13 17:09发布

I have a classic ASP app that I'm trying to run under IIS Express on 64 bit Windows. It uses Jet to connect to a Microsoft Access database and will not work under 64 bit.

I have created the following application pool for the ASP app, but it seems to ignore the enable32BitAppOnWin64 attribute and the process is still 64 bit.

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

How can I get this app pool in IIS Express to run as a 32 bit process?

标签: iis-express
4条回答
Evening l夕情丶
2楼-- · 2019-01-13 17:54

Are you sure?

It uses Jet to connect to a Microsoft Access database and will not work under 64 bit.

I had the same problem and eventually solved it by forcing the 64 bit drivers to install. Initially that failed because of an error that you can't install the 64 bit drivers if you have Office 2010 32 bit installed.

But ... you can force the 64 bit version of the Access Database Engine (ACE) from here to install with the 'passive' switch:

AccessDatabaseEngine_x64.exe /passive

And then I was able to run my legacy code with my current development environment.

查看更多
Evening l夕情丶
3楼-- · 2019-01-13 18:01

In IIS Express property window of VS studio, change the first option: 'Managed Application Pool' from 'Integrated' to 'Classic'

查看更多
三岁会撩人
4楼-- · 2019-01-13 18:07

For 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"`
查看更多
Evening l夕情丶
5楼-- · 2019-01-13 18:07

According to this, IIS Express 7.5 comes only as a 32 bit application. IIS Express 8.0 however, comes with both 32 bit and 64 bit versions of the application. The 32 bit version can be found at c:\program files (x86)\IIS Express\iisexpress.exe and the 64 bit version can be found at c:\program files\IIS Express\iisexpress.exe.

IIS Express ignores the enable32BitAppOnWin64 attribute. To run the app pool as 32 bit, you must execute the 32 bit version of IIS Express.

You can determine which version is running in Task Manager by examining the process on the Processes tab. The 64 bit version will be displayed as iisexpress.exe and the 32 bit version will be displayed as iisexpress.exe *32.

查看更多
登录 后发表回答