Необходимо запустить веб-сайт IIS в 32-битном режиме на 64-битной Windows Server

У меня есть настройка сервера IIS6 под управлением Windows Server 2003 x64, R2, SP2. Все работает отлично, я могу размещать сайты в IIS, и это работает именно так, как я хочу.

Уловка, у меня есть ASP.NET WebApp, который должен использовать только 32-битный драйвер Odbc. Я настроил ASP.NET WebApp для компиляции только для x86, но он все еще не работает.

Я также попробовал эту команду на сервере, чтобы включить рабочие процессы x86, но она также не работает:cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true отсюда

Тем не менее, приложение не может загрузить драйвер Odbc, если я запускаю точно такой же код на компьютере с архитектурой x86, он работает, как и ожидалось, он также работает на моем x86 IIS7; Я хотел бы избежать создания другого рабочего веб-сервера для этого WebApp, поэтому любая помощь приветствуется.

3 ответа

Решение

В дополнение к включению 32-разрядных приложений на win 64 необходимо включить 32-разрядную интеграцию asp.net с IIS. В Windows\Microsoft.NET\Framework\v2.0.50727 (не в каталоге Framework64) выполните:

aspnet_regiis -enable -i

Помимо того, что @dmo ответил выше, мне пришлось разрешить Application Pool обрабатывать приложения x86.
Для этого откройте IIS Manager, а затем выберите " Пул приложений", который, как вы ожидаете, будет обрабатывать x86, и откройте " Дополнительные настройки".
Теперь найдите свойство Enable 32-bit Applications и установите значение True.

Есть ли у вас другие DLL, которые могли бы получить доступ к драйверу ODBC в "Any" вместо 32-битного режима? Скорее всего, это ваша проблема, у нас была похожая проблема, и мы решили ее, переключив сборки, которые называли драйвер только 32-разрядным... но оставили веб-приложение как "Любое" (64-разрядное).

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