Ошибка подключения к базе данных Oracle из приложения .net в Windows 7 - PullRequest
1 голос
/ 06 марта 2012

Я получаю эту ошибку, когда мое приложение .Net winforms пытается подключиться к базе данных Oracle на 64-разрядной машине с Windows 7. Я использую System.Data.OracleClient.dll в качестве поставщика.

OCIEnvCreate не удалось с кодом возврата -1, но текст сообщения об ошибке не был имеется.

Может подключиться к той же базе данных, используя файл «udl» и используя утилиту «SQL Plus» на этом компьютере.

На моем компьютере под управлением Windows 7 каталог ORACLE_HOME правильно указывает на 32-разрядного клиента в переменной среды и реестре, но все еще получает ту же ошибку.

Кроме того, я могу подключиться к этой базе данных из приложения .Net на компьютере под управлением Windows XP, даже если эти переменные среды отсутствуют.

Не могли бы вы посоветовать?

Спасибо за чтение.

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

Исходя из вашего вопроса, может быть полезно узнать ваши настройки, т. Е. VS2010 / 2008 и т. Д .?
Это недавняя проблема или сборка новой машины?

У вас есть одна установка клиента Oracle?т.е. какую версию или вы пытаетесь использовать мгновенный клиент?(была ли у вас ранее установленная старая версия, которая может вызывать путаницу)

System.Data.OracleClient теперь устарел, а ODP.NET (Oracle.DataAccess) является рекомендуемой заменой непосредственно из Oracle.

У меня есть машина для разработки Windows 7 с VS2010 + ODP.NET 11.2 (ODAC) с 32,1-битным клиентом 11,1 и 64-битным клиентом (не уверен, нужен ли мне этот).

Создает ли ваше решение или вы получаете это сообщение об ошибке при использовании графического интерфейса или во время выполнения?Вы можете использовать обозреватель серверов в VS для подключения?У вас есть приложение .net, которое использует oracle, которое работает и может быть протестировано на вашем компьютере?

Вы также можете установить путь TNS_ADMIN в среде.

Убедитесь, что у вас установлен путьвключая, например, C: \ Oracle \ product \ 11.1.0 \ client32 \ bin, попробуйте добавить его в начало среды пути.

Работает ли ваше приложение под другой учетной записью?

Подробнеечем, вероятно, проблема конфигурации клиента, как предлагает Антонио.

2 голосов
/ 06 марта 2012

Наиболее распространенная причина этого исключения состоит в том, что ваш параметр ORACLE_HOME является неправильным или указывает на 32-битный, см .:

http://blogs.msdn.com/b/spike/archive/2008/11/06/connecting-to-an-oracle-server-you-know-is-there-but-connection-still-fails-what-gives.aspx

http://www.lequestion.com/questions/249/ocienvcreate-failed-with-return-code-1-but-error-message-text-was-not-available

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...