Не удалось загрузить файл или сборку Oracle.DataAccess на 64-битном компьютере

Я знаю, что по этой же проблеме задается много вопросов. но я не мог найти решения своей проблемы. так вот моя ситуация.

В нашем приложении XBAP мы используем компонент ODP.NET для доступа к базе данных Oracle. Он отлично работает на машине разработки. Но когда я развертываю это в производственной среде, я получаю следующее исключение при запуске приложения.

Тип: System.Exception, mscorlib, Version = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 Сообщение: не удалось загрузить файл или сборку Oracle.DataAccess, версия = 4.112.1.2, культура = нейтральная, PublicKeyToken = 89b483f429c47342 'или одной из его зависимостей. Система не может найти указанный файл.

Вот спецификации системы / ПО

Машина для разработки

  • 32-разрядная версия с XP professional
  • .NET 4.0
  • 32-разрядная версия ODP.NET 11.2.0.3.0

Производственная машина

  • 64-разрядная версия с Windows Server 2008
  • .NET 4.0
  • 64-разрядная версия ODP.NET

Я думаю, что приложение пытается получить доступ к 32-битной версии DLL Oracle.DataAccess, но в Visual Studio я установил целевую платформу на Any CPU. В производственном IIS для пула приложений для параметра enable 32-bit applications установлено значение false. 64-битная DLL также присутствует в GAC. Поэтому я думаю, что приложение должно использовать 64-битную версию dll Oracle.DataAccess, но это не так.


person raja9787    schedule 21.03.2012    source источник


Ответы (2)


Установка 32-битной версии ODP.NET решила проблему !!

person raja9787    schedule 04.04.2012

Одно условие для этой проблемы возникает, когда платформа когда-либо согласованного проекта конфликтует с текущими настройками платформы в iis. Как вы и сказали, вы работаете на 64-битной машине, и, очевидно, ваша настройка iis по умолчанию разрешает на ней только 64-битные приложения. Поскольку ваша версия ODP / приложения 32-битная, вам необходимо переопределить настройку iis по умолчанию для поддержки 32-битной версии. Выполните следующие шаги, чтобы включить 32-битную среду на iis.

• Запустите диспетчер iis, запустив «inetmgr» в командной строке.

• Разверните localhost и выберите под ним «Пулы приложений».

• Выберите «DefaultAppPool» под пулом приложений.

введите описание изображения здесь

• Щелкните расширенные настройки на вкладке действий.

• Установите для параметра «Включить 32-разрядные приложения» значение true в дополнительных настройках.

введите описание изображения здесь

• Нажмите "ОК" и перезапустите iis.

person omal bose    schedule 06.08.2015