当ODBC测试连接成功时,Oracle InstantClient ODBC连接在DbProviderFactory中失败

问题描述 投票:1回答:2
  • 安装了InstantCLient 11.2.0.4 Basic Lite和ODBC软件包
  • 设置ORACLE_HOME和TNS_ADMIN环境变量,并将安装路径添加到Path环境变量
  • 在该位置创建了我的tnsnames.ora文件
  • 使用文件中的TNS设置我的DSN并进行测试连接 - 成功。
  • 之前使用的C#代码使用DbProviderFactoies连接到数据提供程序的通用方法(已经与Teradata,SQL Server一起使用)
  • 使用以下connectionString创建了我的数据源配置: <?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远程数据库
c# .net oracle11g instantclient dbproviderfactories
2个回答
1
投票

我不确定出了什么问题,但我发现下面非常简单的连接字符串有效!它也使用通用的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>


0
投票

这取决于您使用哪种协议进行连接:TCPTCPS。 如果TCPS,那么.NET Framework版本应该高于4.5。 如果ORA-12560: TNS:protocol adapter error版本低于3.5,你会得到“.NET Framework”。

© www.soinside.com 2019 - 2024. All rights reserved.