OracleConnection выдает пустое исключение

2

Я пытаюсь подключиться к моей базе данных Oracle с моего нового ПК. Я только что установил Visual Studio и ODAC. Но когда я пытаюсь сделать простое соединение, я получаю исключение с пустым сообщением, пустым источником, пустым номером, только с кодом ошибки, который равен -2147467259.

OracleConnection Prueba;
Prueba = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1");
Prueba.Open();

Сведения об исключении
Это код Exception.ToString():

"Oracle.DataAccess.Client.OracleException at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, соединение OracleConnection, IntPtr opsErrCtx, OpoSqlValCtx * pOpoSqlValCtx, Object src, Строковая процедура)
  в Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
  в Oracle.DataAccess.Client.OracleConnection.Open()
   в OracleConnectionS.Program.Main(String [] args) в C:\Users\Simetri\Documents\Visual Studio 2010\Projects\OracleConnection\OracleConnection\Program.cs: линии 19"

Любая идея о том, почему это могло произойти?

ОБНОВЛЕНИЕ

Если я запускаю визуальную студию в качестве администратора, я не получаю исключение, и я могу просто подключиться к базе данных.

Я попытался предоставить разрешение FULL CONTROL для каталога Oracle C:\Oracle. Но если я запускаю Visual Studio в обычном режиме (не как администратор), я получаю исключение.

Фоновая информация
- Я использую 64-разрядную версию Windows 7
- Visual Studio 2010
- Я могу подключиться только найти с SQL * PLUS

  • 4
    Что такое «пустое исключение»?
  • 0
    Вы пытались подключиться за пределами VS, например, используя TNSPing, а затем с SQL Developer?
Показать ещё 4 комментария
Теги:
database-connection
odp.net
odac

3 ответа

3
Лучший ответ

Итак, после установки всех видов ODAC и поиска по каждому сообщению, связанному с этим.

В конце концов, чистая установка 32-битной версии была решением.

  • Сначала вам нужно unistall всего вашего другого клиента oracle, который вы когда-либо устанавливали.
  • После этого найдите любую версию ODAC, которая вам нужна (последняя, ​​если возможно), но обязательно загрузите 32-разрядную версию.

Почему?

Ну что-то связано с версией, в которой разрабатывается Visual Studio. Если вы разрабатываете консольное приложение, у вас не будет проблем с клиентской версией, но если вы используете веб-проект, вам определенно нужно 32-битное версия.

  • Наконец, убедитесь, что все ваши проекты в visual studio целевой платформе "32 бит"
  • и ссылку на новый Oracle.DataAccess.dll, который вы только что установили
0

Попробуйте переформатировать строку подключения в эту форму и посмотреть, как она работает.

<add name="LoisDataAccess" connectionString="Data Source=LOISPRD;Persist Security Info=True;User ID=ABC;Password=DEF" providerName="System.Data.OracleClient" />
  • 0
    Я не пользуюсь клиентом Microsoft. Я использую клиент Oracle, using Oracle.DataAccess.Client;
  • 0
    Итак, имя провайдера будет другим. Я пытался предположить, что если вы удалите ненужные вещи из строки подключения, это может решить вашу проблему. Все, что вам нужно, это источник данных и имя пользователя / пароль
0

Если клиент, которым вы пользуетесь, является "Мгновенным клиентом", тогда вам может быть лучше, скопировав некоторые Oracle-DLL в ваше решение, - для перехода от просмотра см. это.

ЕСЛИ я мог бы рекомендовать использовать другого .NET-провайдера... по моему опыту большинство коммерческих гораздо менее проблематично, чем поставщик Oracle.NET - см. здесь, на SO.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню