56

我有一个经典的 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 位进程运行?

4

5 回答 5

121

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

 Tools
  -> Options
   -> Projects and Solutions
    -> Web Projects
     -> Uncheck "Use the 64 bit version of IIS Express for web sites and projects"`
于 2015-05-13T03:39:44.057 回答
42

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

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

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

于 2013-04-26T00:29:23.047 回答
2

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

它也可以通过 UI 通过单击项目属性 -> Web 选项卡 -> Bitness(更改为 x64)来使用。

于 2021-03-21T17:31:07.830 回答
1

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

于 2014-11-18T06:52:10.807 回答
0

你确定吗?

它使用 Jet 连接到 Microsoft Access 数据库,并且无法在 64 位下工作。

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

但是...您可以从此处强制使用“被动”开关安装64 位版本的 Access 数据库引擎 (ACE) :

AccessDatabaseEngine_x64.exe /passive

然后我就能够在我当前的开发环境中运行我的遗留代码。

于 2014-10-01T07:54:45.300 回答