Как заставить IIS Express работать в 32-битном режиме?

У меня есть классическое приложение ASP, которое я пытаюсь запустить под IIS Express на 64-битной Windows. Он использует Jet для подключения к базе данных Microsoft Access и не будет работать под 64-битной.

Я создал следующий пул приложений для приложения ASP, но он, кажется, игнорирует enable32BitAppOnWin64 атрибут и процесс все еще 64 бит.

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

Как я могу заставить этот пул приложений в IIS Express работать как 32-битный процесс?

5 ответов

Решение

В соответствии с этим 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,

Для 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"`

Добавлять <Use64BitIISExpress>false</Use64BitIISExpress> под <PropertyGroup> тег вашего проекта csproj.

Он также доступен через пользовательский интерфейс, щелкнув свойства проекта -> вкладка Интернет -> Bitness (смените на x64).

В окне свойств IIS Express студии VS измените первый параметр: "Пул управляемых приложений" с "Интегрированный" на "Классический"

Уверены ли вы?

Он использует Jet для подключения к базе данных Microsoft Access и не будет работать под 64-битной.

У меня была та же проблема, и в конце концов я решил ее, заставив установить 64-битные драйверы. Первоначально это не удалось из-за ошибки, что вы не можете установить 64-разрядные драйверы, если у вас установлен Office 2010 32-разрядный.

Но... вы можете принудительно установить 64-битную версию Access Database Engine (ACE) с помощью "пассивного" переключателя:

AccessDatabaseEngine_x64.exe /passive

И тогда я смог запустить свой прежний код с моей текущей средой разработки.

Другие вопросы по тегам