我正在使用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
中。可能是该版本的软件包有问题,还是我错过了一些配置?
答案 0 :(得分:0)
您的tnsnames.ora
存放在哪里?根据{{3}}(12c Release 4(12.1.0.2.4)),搜索路径为:
tnsnames.ora
指定位置的TNS_ADMIN
文件中的数据源别名。位置可以包含绝对或相对目录路径。tnsnames.ora
位于同一目录中的.exe
文件中的数据源别名。但是,基于我使用ODP.NET ManagedDriver(4.121.2.0)进行的一些测试,它还考虑了%ORACLE_HOME%\network\admin
和TNS_ADMIN
环境变量。像文档这样的锁不是100%正确。
注意,与其他驱动程序不同,ODP.NET ManagedDriver不会从您的注册表中读取TNS_ADMIN
值!