Не удалось загрузить файл или сборку «Oracle.DataAccess» на 64-разрядной машине - PullRequest
1 голос
/ 21 марта 2012

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

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

Тип: System.Exception, mscorlib, Версия = 4.0.0.0, Culture = нейтральный, 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 я установил целевую платформу «Любой ЦП».В производственной IIS для пула приложений для включения 32-разрядных приложений установлено значение «ложь».64-битная DLL также присутствует в GAC.Поэтому я думаю, что приложение должно использовать 64-битную версию dll Oracle.DataAccess, но это не так.

Ответы [ 2 ]

4 голосов
/ 04 апреля 2012

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

3 голосов
/ 06 августа 2015

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

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

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

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

enter image description here

• Нажмите на дополнительные настройки на вкладке действий

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

enter image description here

• Нажмите кнопку ОК и перезапустите iis

...