Ошибка подключения C # к Oracle. Поставщик несовместим с версией клиента Oracle.

Я тестирую соединение с моим Oracle db с помощью Visual Studio 2012 Oracle 11g R2 Client 32-разрядный локально Oracle 11g R2 Client 64-разрядный сервер ODAC 11.2.0.320 32-разрядный

Когда я устанавливаю соединение локально, я могу получить информацию, которая будет возвращена из базы данных. Когда я публикую его на сервере, я получаю сообщение «Провайдер несовместим с версией клиента Oracle». Нужно ли мне установить 64-разрядный ODAC и использовать этот Oracle.DataAccess.dll оттуда?

Спасибо


person user3523871    schedule 11.04.2014    source источник


Ответы (1)


32-разрядный клиент может взаимодействовать с 64-разрядным сервером, поэтому он работает для вас локально. Когда вы публикуете на сервере (я предполагаю, что ASP.NET) версии ODP.NET должны точно совпадать. Например. вам нужно будет выполнить сборку локально на 64-разрядной версии ODP.NET, если сервер 64-разрядный. Кроме того, ODP.NET очень требовательно относится к идентичной версии, так что следите за этим.

person Stuart Grassie    schedule 11.04.2014
comment
sgrassie, Спасибо за ответ. Так что мне нужно установить 64-разрядную версию ODAC на моем локальном компьютере и использовать эту dll? Все, что у нас на сервере - это клиент 11g R2. Нужно ли мне устанавливать ODAC отдельно? Следует ли мне устанавливать один и тот же 64-разрядный ODAC как на локальном, так и на сервере? Спасибо - person user3523871; 11.04.2014
comment
На вашем локальном компьютере он работает, поэтому там ничего не требуется. Но на вашем сервере вы должны установить компоненты ODAC с той же архитектурой (x64 / x86) и версией, что и клиент 11g R2. Вы должны скомпилировать свой проект, ориентируясь на ту же архитектуру, на которой работает сервер. - person Wernfried Domscheit; 11.04.2014
comment
На моем локальном компьютере (x86) и сервере (x64) установлен один и тот же 11g R2. Я не уверен, где найти точную версию. Я установил 32-разрядную версию ODAC 11.2 Release 5 и Oracle Developer Tools для Visual Studio (11.2.0.3.20) на свой локальный компьютер. Теперь мне нужно установить на сервер 64-разрядную версию ODAC 11.2 Release 5? Спасибо - person user3523871; 11.04.2014
comment
Да, вам необходимо установить ODAC на свой сервер в соответствии с версией и архитектурой клиента Oracle на этом сервере, поэтому 11.2 (второстепенный выпуск не имеет значения). Проверить реестр HKLM/Software/Oracle. Если он существует, это клиент x64, в противном случае он находится в HKLM/Software/WOW6432Node/Oracle для x86 - person Wernfried Domscheit; 11.04.2014
comment
У меня возникнут проблемы с моей сетью, как только она будет создана, я установлю 64-битную версию odac на сервере, а затем протестирую ее и отправлю свои результаты. Спасибо - person user3523871; 12.04.2014
comment
Я сделал то, что вы сказали, и установил ODAC на сервер. Вроде работает. Еще раз спасибо за вашу помощь. - person user3523871; 15.04.2014