У меня есть установка сервера IIS6 под управлением Windows Server 2003 x64, R2, SP2. Все работает отлично, я могу размещать веб-сайты в IIS, и он работает именно так, как я хочу.
Уловка в том, что у меня есть веб-приложение ASP.NET, которому необходимо использовать только 32-разрядный драйвер Odbc. Я настроил ASP.NET WebApp для компиляции только для x86, но он по-прежнему не работает.
Я также пробовал эту команду на сервере, чтобы включить рабочие процессы x86, но она также не работает: cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true
из Вот
Тем не менее, приложение не может загрузить драйвер Odbc. Если я запускаю тот же код на машине x86 dev, он работает, как ожидалось, он также работает на моем x86 IIS7; Я бы не хотел создавать еще один производственный веб-сервер для этого веб-приложения, поэтому приветствуется любая помощь.
Помимо включения 32-битных приложений в win 64, вам необходимо включить 32-битную интеграцию asp.net IIS. В Windows \ Microsoft.NET \ Framework \ v2.0.50727 (не в каталоге Framework64) запустите:
aspnet_regiis -enable -i
Помимо того, что @dmo ответил выше, мне пришлось разрешить пулу приложений обрабатывать приложения x86.
Для этого откройте диспетчер IIS и выберите Пул приложений вы ожидаете, что он будет обрабатывать x86 и открывать Расширенные настройки.
Теперь найдите недвижимость Включить 32-битные приложения и установите значение True.
У вас есть другие библиотеки DLL, которые могли бы обращаться к драйверу ODBC в «Any» вместо 32-разрядного режима? Скорее всего, это ваша проблема, у нас была аналогичная проблема, и мы решили ее, переключив сборки, которые вызывали драйвер, только на 32-разрядный ... но оставили веб-приложение как «Любое» (64-разрядное).