Вопрос

У моего клиента есть сервер x64, на котором он установил версии Oracle Client x32 и x64.После того, как он установил мое веб-приложение и попытался его запустить, он получил исключение «Была предпринята попытка загрузить программу с неверным форматом (HRESULT 0x8007000B)» в отношении Oracle.DataAccess.dll.

Его IIS настроен на 64 бит.

Я попросил его добавить перенаправление << сборкиBinding>> с атрибутом процессораArchitecture="amd64" в Oracle.DataAccess.dll в веб-конфигурации, но это не помогло.

Как я могу заставить свое приложение/его IIS/его сервер выбрать правильную версию клиента Oracle?

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

Решение

Очевидно, установщики Oracle для 32-битной и 64-битной версий не распознают друг друга, поэтому, если вы сначала устанавливаете 32-битную версию, а затем устанавливаете 64-битную версию, 64-битная версия будет установлена ​​по умолчанию в тот же каталог, что и 32-битная версия.И это нехорошо.Решением было удалить оба клиента, а затем установить 32-битную версию в один каталог и 64-битную версию в другой каталог.

Другие советы

Пробовали ли вы настроить переменную среды PATH для процесса IIS, чтобы она включала только 64-разрядные двоичные файлы?

Во многих отношениях это неприятное решение (особенно для служб и размещенных сред выполнения, таких как IIS), но если оно сработает, это даст вам несколько вариантов для рассмотрения.

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