ORA-12154:TNS:无法解析指定的连接标识符

时间:2017-09-01 08:45:12

标签: c# oracle

我正在使用NuGet包Oracle.ManagedDataAccess。调用OracleConnection.Open();时,我收到标题中指定的错误。我的连接字符串看起来像Data Source=RAEDB;User ID=*****;Password=*****;。在tnsnames.ora中,此数据源配置为

RAEDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = OraDB_IHDB)(PORT = 1521))
     (LOAD_BALANCE = yes)
    (CONNECT_DATA =      
      (SERVER = DEDICATED)
      (SERVICE_NAME = ihdb)
    )
  )

我们不使用sqlnet.ora,因此默认使用tnsnames.ora

奇怪的是,这只发生在NuGet包版本12.2.1100中,而不是12.1.24160419中。可能是该版本的软件包有问题,还是我错过了一些配置?

1 个答案:

答案 0 :(得分:0)

您的tnsnames.ora存放在哪里?根据{{​​3}}(12c Release 4(12.1.0.2.4)),搜索路径为:

  1. .NET配置文件中tnsnames.ora指定位置的TNS_ADMIN文件中的数据源别名。位置可以包含绝对或相对目录路径。
  2. tnsnames.ora位于同一目录中的.exe文件中的数据源别名。
  3. 但是,基于我使用ODP.NET ManagedDriver(4.121.2.0)进行的一些测试,它还考虑了%ORACLE_HOME%\network\adminTNS_ADMIN环境变量。像文档这样的锁不是100%正确。

    注意,与其他驱动程序不同,ODP.NET ManagedDriver不会从您的注册表中读取TNS_ADMIN值!