Как заставить 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
И тогда я смог запустить свой прежний код с моей текущей средой разработки.