我收到ORA-12154“TNS:无法解析指定的连接标识符”。我正在用Oracle.ManagedDataAccess.Client替换Oracle.DataAccess.Client。我正在使用Windows10 64位。它适用于DataAccess.Client和另一台机器。操作系统有问题吗?非常感谢您的帮助。
答案 0 :(得分:1)
我认为ODP.NET托管驱动程序找不到您的tnsnames.ora
(分别为sqlnet.ora
,ldap.ora
等)文件。 Oracle.ManagedDataAccess
的搜索模式与Oracle.DataAccess
根据documentation,ODP.NET托管驱动程序配置按此顺序解析别名:
dataSources
部分<oracle.manageddataaccess.client>
部分中的数据源别名(即machine.config
,web.config
,user.config
)。tnsnames.ora
指定位置的TNS_ADMIN
文件中的数据源别名。位置可以包含绝对或相对目录路径。tnsnames.ora
位于同一目录中的.exe
文件中的数据源别名。如您所见,与Oracle.DataAccess
不同,它会从注册表或TNS_ADMIN
环境变量中读取{strong> 读取TNS_ADMIN
值。
但是,关于TNS_ADMIN
环境变量,我不确定这是否是文档中的错误 - 也许我会按时间进行测试。
答案 1 :(得分:0)
问题已经解决。在machine.config文件的section下有tns_admin条目,它指向Oracle_Home上的tnsnames.ora文件。我评论该部分及其工作正常。谢谢大家的帮助。
答案 2 :(得分:0)
以我的情况来说很简单。
在应用程序启动方法中设置ORACLE_HOME环境变量
在web.config中没有任何更改或设置
var oracleHome = GetOracleHome(); // Find registry...
Environment.SetEnvironmentVariable("ORACLE_HOME", oracleHome);