Сбой соединения ODBC с Oracle InstantClient в DbProviderFactory при успешном тестовом соединении ODBC
- Установлены пакеты InstantCLient 11.2.0.4 Basic Lite и ODBC
- Установите переменные среды ORACLE_HOME и TNS_ADMIN и добавьте путь для установки в переменную среды Path.
- Создал мой файл tnsnames.ora в этом месте
- Настроил мой DSN с помощью TNS в файле и сделал тестовое соединение - успешно.
- Использовал код C#, который я разработал ранее и который использует универсальный метод подключения DbProviderFactoies к провайдерам данных (уже работает с Teradata, SQL Server)
- Создал мою конфигурацию источника данных со следующей строкой подключения:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="DataSource" connectionString="DRIVER={Oracle in instantclient_11_2};Data Source=Test Oracle;Persist Security Info=True;Password=password;User=user" providerName="System.Data.OracleClient"/> </connectionStrings> </configuration>
- Результат: "ORA-12560: TNS: ошибка адаптера протокола".
- Я перепробовал много вариантов в строке подключения, и все они привели к некоторой ошибке. Любая помощь будет высоко ценится.
Системная информация
- Windows Server 2003, 64-разрядная версия
- C#.NET 3.5
- Oracle 11g 11.2.0.3.0 удаленная база данных
2 ответа
Я не уверен, что случилось, но я обнаружил, что очень простая строка подключения ниже работает! Он также использует общий System.Data.Odbc.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DataSource" connectionString="DSN=MyDSN;Uid=user;Pwd=password" providerName="System.Data.Odbc"/>
</connectionStrings>
</configuration>
Это зависит от того, какой протокол вы используете для подключения: TCP
или же TCPS
,
Если TCPS
тогда .NET Framework
версия должна быть выше 4.5.
Ты получаешь " ORA-12560: TNS:protocol adapter error
"если .NET Framework
версия ниже 3.5.