it-roy-ru.com

Запустите Oracle Client в 32-битном режиме на 64-битной машине

Я только что перешел с 32-разрядного рабочего стола Windows 7 на 64-разрядный ноутбук с Windows 7. У нас есть программа на C #, которую мы разрабатываем и которая содержит около 60 проектов в рамках решения. Я продолжаю получать следующую ошибку при попытке построить:

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed

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

Я использую Visual Studio 2008. В настоящее время я рассматриваю возможность перехода на 32-разрядную версию, но очень хочу избежать этого.

10
Joseph

Я обнаружил, что вам нужно установить 32-битный клиент Oracle (вы можете загрузить установщик с их веб-сайта), даже если вы работаете на 64-битной машине.

Кроме того, во время обсуждений люди говорили о 32-битном режиме и т.д. Именно так вы можете проверить/установить его для IIS 7 размещенного приложения. Вам не нужно менять это, но я добавил сюда для полноты/будущей ссылки.

  • Запустите IIS 7 и разверните узел имени сервера. 
  • Нажмите на узел Application Pools и найдите используемый пул Application.
  • На правой панели нажмите Дополнительные настройки ...
  • В появившемся всплывающем окне установите флажок Enabled 32-Bit Applications, который является третьим вариантом сверху.
11
Belogix

Вы должны изменить свой основной файл .exe, чтобы он работал только как 32-разрядный. Вы можете сделать это в Visual Studio - просто измените Цель платформы с «Любой процессор» на «x86».

Если это невозможно, используйте corflags.exe, который заставляет существующий exe-файл быть 32-разрядным приложением.

5
Piotr Stapp

Я боролся с этой проблемой в течение многих месяцев и наконец решил ее. Я думаю, что все сообщения полезны, но у меня была одна недостающая часть. У меня не было Microsoft ODBC для установки экземпляра Oracle для пользовательского DSN или системного DSN. Я работаю на машине с Windows 8. Поэтому мне пришлось пойти в общий поиск Windows и ввести ODBC и открыть ODBC Администратор источника данных (32-разрядный). Проверьте, есть ли у вас Microsoft ODBC для установки Oracle на вкладке «Пользовательский DSN» или «Системный DSN». Если нет, нажмите кнопку Добавить и выберите Microsoft ODBC для Oracle. Заполните информацию для вашего источника данных, который вы пытаетесь нажать, и нажмите ОК. Обязательно перезагрузите компьютер, и это то, что, наконец, сработало для меня. Надеюсь, это поможет некоторым из вас. 

2
zeroend

В моем случае 64-битный клиент Oracle был установлен на моей машине, но все равно выдает ту же ошибку. Итак, я проанализировал, что в моем приложении перейдите в Приложение правой кнопкой мыши и перейдите на вкладку -> Свойства-> Веб И снимите флажок «Использовать IIS Express», если вы используете локальный IIS Интернет сервер . Проблема решена.

0
user3906334

Вы должны изменить свой основной файл .exe, чтобы он работал только как 32-разрядный. Вы можете сделать это в Visual Studio - просто измените цель платформы с «Любой процессор» на «x86» . https://msdn.Microsoft.com/en-us/library/ms185328.aspx

0
user7597235