【问题标题】:How can I force IIS Express to run in 32 bit mode?如何强制 IIS Express 在 32 位模式下运行?
【发布时间】:2013-04-20 01:06:16
【问题描述】:

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

【问题讨论】:

    标签: iis-express


    【解决方案1】:

    在您的 csproj 项目的 &lt;PropertyGroup&gt; 标签下添加 &lt;Use64BitIISExpress&gt;false&lt;/Use64BitIISExpress&gt;

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

    【讨论】:

      【解决方案2】:

      对于 Visual Studio 2013 视觉工作室 2015 视觉工作室 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"`
      

      【讨论】:

      • 谢谢尼尔!由于某种原因,我的默认设置为 64 位,这让我非常想知道为什么它使用 GAC_64 库,即使目标平台设置为 x86。
      • 这些说明也适用于 Visual Studio 2015!
      • 这适用于全球。有没有办法按项目执行此操作?
      • 我遇到了相反的问题,这是未选中的,我正在尝试运行 64 位项目。检查它解决了这个问题。谢谢!
      • 适用于 Visual Studio 2017
      【解决方案3】:

      在 VS studio 的 IIS Express 属性窗口中,将第一个选项:“Managed Application Pool”从“Integrated”更改为“Classic”

      【讨论】:

        【解决方案4】:

        你确定吗?

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

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

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

        AccessDatabaseEngine_x64.exe /passive
        

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

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

          • 好建议,昨天升级了一整天后,我们试图修复我们构建服务器上的构建,问题是从 IIS 7.5-8 更改。
          • 使用以下命令,该命令使用一个联结来强制 IISExpress 使用 32 位版本:mklink /j "c:\program files\IIS Express\" "c:\program files (x86)\IIS Express\"
          猜你喜欢
          • 1970-01-01
          • 2011-11-20
          • 2011-09-25
          • 1970-01-01
          • 1970-01-01
          • 2020-05-25
          • 2010-11-07
          • 2014-05-16
          • 1970-01-01
          相关资源
          最近更新 更多