Как скомпилировать веб-сайт для использования 32-битного клиента Oracle в 64-битной Windows

StackOverflow https://stackoverflow.com/questions/1707101

Вопрос

Я получил эту ошибку после обновления до 64-разрядной версии Windows 7 и последующего запуска существующего веб-сайта .NET.

[ИнвалидОператионИсключение:Попытка загрузить клиентские библиотеки Oracle вызвала исключение BadImageFormatException.Эта проблема возникнет при работе в 64-битном режиме с установленными 32-битными клиентскими компонентами Oracle.]

Я установил только 32-битный клиент Oracle и понимаю, что на моей 64-битной машине разработки приложение ожидает 64-битные библиотеки, ЕСЛИ НЕ указано явно.Это из поисков, которые я провел до сих пор.

Я читал, что могу изменить платформу решения на x86, что будет указывать приложению использовать 32-разрядную версию, если оно это обнаружит.Я хотел бы сделать это, но в решении Visual Studio для веб-сайта нет опции x86.

Я создал тестовое приложение, и у меня есть возможность: я создал тестовый веб-сайт, но этого не произошло.Как скомпилировать веб-сайт на платформе x86, чтобы он использовал 32-разрядный клиент Oracle.

Ваше здоровье

Это было полезно?

Решение

В диспетчере IIS создайте пул приложений и настройте этот пул приложений для работы в 32-разрядном режиме.Затем назначьте свой веб-сайт с помощью 32-битного клиента Oracle для работы в этом 32-битном пуле приложений.

Поскольку рабочий процесс, который IIS запускает для этого пула приложений, является 32-разрядным процессом, при попытке загрузить CLR он загрузит 32-разрядную среду CLR и, следовательно, загрузит вашу сборку в 32-разрядном режиме.Это верно, даже если ваша сборка была скомпилирована для 64-битного и 32-битного режимов.Ваша сборка, работающая в 32-битном режиме, может затем вызвать клиент Oracle, работающий в 32-битном режиме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top