我收到 ORA-12154“TNS:无法解析指定的连接标识符”。我正在用 Oracle.ManagedDataAccess.Client 替换 Oracle.DataAccess.Client。我正在使用 windows10 64 位。它适用于 DataAccess.Client 和另一台机器。操作系统有问题吗?您的帮助将不胜感激。
问问题
2595 次
3 回答
1
我假设 ODP.NET 托管驱动程序找不到您的tnsnames.ora
(resp. sqlnet.ora
, ldap.ora
, 等) 文件。的搜索模式与Oracle.ManagedDataAccess
使用的搜索模式不同Oracle.DataAccess
根据文档,ODP.NET 托管驱动程序配置按以下顺序解析别名:
dataSources
.NET 配置文件中部分下的部分中的数据源别名<oracle.manageddataaccess.client>
(即machine.config
,web.config
,user.config
)。- .NET 配置文件中
tnsnames.ora
指定位置的文件中的数据源别名。TNS_ADMIN
位置可以由绝对或相对目录路径组成。 tnsnames.ora
文件中的数据源别名与.exe
.
如您所见,不像Oracle.DataAccess
它不从TNS_ADMIN
注册表或TNS_ADMIN
环境变量中读取值。
但是,关于TNS_ADMIN
环境变量,我不确定这是否是文档中的错误 - 也许我会按时测试。
于 2017-05-26T06:21:13.460 回答
0
问题已解决。machine.config 文件中的部分下有 tns_admin 条目,它指向 Oracle_Home 上的 tnsnames.ora 文件。我评论了该部分及其工作正常。谢谢大家的帮助。
于 2017-05-30T15:34:59.650 回答
0
就我而言,这是一种简单的方法。
在应用程序启动方法中设置 ORACLE_HOME 环境变量,
而不在 web.config 中进行任何更改或设置
var oracleHome = GetOracleHome(); // Find registry...
Environment.SetEnvironmentVariable("ORACLE_HOME", oracleHome);
于 2020-07-03T23:40:35.483 回答