0

我收到 ORA-12154“TNS:无法解析指定的连接标识符”。我正在用 Oracle.ManagedDataAccess.Client 替换 Oracle.DataAccess.Client。我正在使用 windows10 64 位。它适用于 DataAccess.Client 和另一台机器。操作系统有问题吗?您的帮助将不胜感激。

4

3 回答 3

1

我假设 ODP.NET 托管驱动程序找不到您的tnsnames.ora(resp. sqlnet.ora, ldap.ora, 等) 文件。的搜索模式与Oracle.ManagedDataAccess使用的搜索模式不同Oracle.DataAccess

根据文档,ODP.NET 托管驱动程序配置按以下顺序解析别名:

  1. dataSources.NET 配置文件中部分下的部分中的数据源别名<oracle.manageddataaccess.client>(即machine.config, web.config, user.config)。
  2. .NET 配置文件中tnsnames.ora指定位置的文件中的数据源别名。TNS_ADMIN位置可以由绝对或相对目录路径组成。
  3. 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 回答