2015-08-03 2 views
2

Я подключаюсь к оракулу с использованием ODP.NET. На моем тестовом сервере установлены две версии Oracle (v4 и v2). У меня есть стороннее приложение, которое связано с одной версией (v4), и мое приложение подключено к другому (v2).Проблема с версией доступа к данным Oracle

Когда я запускаю свое приложение с помощью Visual Studio, он отлично работает без ошибок. Но, когда я публикую и работать с IIS он выдает ошибку о том,

Не удалось загрузить файл или сборку «Oracle.DataAccess, Version = 4.121.1.0, Culture = нейтрально, PublicKeyToken = 89b483f429c47342» или один из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылочной позиции сборки. (Исключение из HRESULT: 0x80131040)

Если я поместить Oracle DLL с версии 4.1 она начнет показывать различные ошибки

Не удалось загрузить файл или сборку «Oracle.DataAccess» или один из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом .

Как устранить эту проблему без удаления (удаления) оракула с машины?


ПРИМЕЧАНИЕ: В текущем сценарии версии оракула не могут быть удалены с сервера. Таким образом, обе версии будут установлены.

+0

Посмотрите на эту инструкцию [Установка Oracle x86 и x64] (http://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle -client # 25412992) как установить как 32 бит, так и 64 вместе на одной машине. –

+0

Делали ли вы установку с помощью установщика или просто копировали DLL? Для неуправляемого ODP.NET вы должны сделать правильную установку, так как существует так много зависимостей и движущихся частей. Вы установили odp.net x64, если ваше приложение имеет 64 бит? Когда вы устанавливаете правильную версию ODP.NET на сервере, дайте ей свой собственный Oracle Home (каталог), чтобы сохранить чистоту. –

+0

Мы установили с помощью установщика. – smilu

ответ

1

Первое сообщение об ошибке сообщает, что вы не установили надлежащую версию клиента Oracle Data. Он искал Oracle.DataAccess, Version=4.121.1.0, но его там не было.

Второе сообщение об ошибке сообщает, что оно есть сейчас, но оно пытается загрузить другую архитектуру (то есть: вы установили 32-разрядную версию, а процесс - 64-разрядный или наоборот).

Есть несколько исправлений:

  1. Установите правильную версию клиента инструментов, в том числе версии справа "BITS.
  2. Установите IIS для запуска в другом битном режиме (так что вернитесь к 32 битам, если процесс составляет 64 бита).
  3. (Предпочитаемый) Используйте независимую от архитектуры версию клиента данных Oracle: Oracle Managed.
+0

Мое приложение - 64 бит, а стороннее приложение - также 64 бит. Мы попытались включить 32-битное, но приложение перестает работать, когда мы его включаем. – smilu

+0

Могут быть другие зависимости, которые требуют других бит. –

Смежные вопросы