1

托管 ODP.NET x64 12.1.0.2 tnsname.ora 是否支持使用 IFILE?我无法让它工作。

例如,对于我已经安装多年的普通“厚客户端”非托管 Oracle 客户端,我曾经在 tnsnames.ora 文件中包含一行:

IFILE=C:\OracleDataSources\tnsnames.MAIN

然后 C:\OracleDataSources\tnsnames.MAIN 文件包含对配置文件的 IFILE 引用,这些配置文件包含我们组织内每个其他 Oracle 实例的实际数据源定义。这有助于保持我们的配置文件集中并与安装文件分开,并且在使用完整的 Oracle 客户端安装时不会出现错误。

现在我正在升级一些使用旧的/已弃用的 System.Data.OracleClient 引用以使用 ODP.NET 托管客户端的代码。如果我尝试将 IFILE 引用与托管 ODP.NET 库一起使用,则会收到以下错误:

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

在故障排除期间,我确认没有使用该Oracle.ManagedDataAccess.Client.OracleDataSourceEnumerator.GetDataSources()方法(http://docs.oracle.com/html/B28089_01/OracleDataSourceEnumeratorClass.htm#CBAHABEH)从 tnsnames.ora 检索数据源,该方法将返回所有数据的列表从 tnsnames.ora 枚举的来源。

当 tnsnames.ora 中仅使用 IFILE 引用时,我从GetDataSources. 如果我手动将数据源别名直接添加到 web.config TNS_ADMIN 设置中指定的文件夹中的 tnsnames.ora 文件(而不是使用 IFILE 引用),那么数据源会GetDataSources正确返回,并且我可以连接到数据源成功使用 ODP.NET。

有没有办法在 ODP.NET 中使用 IFILE tns 名称引用?

4

1 回答 1

4

抱歉,使用 ODP.NET 托管驱动程序时,配置文件和 TNSNAMES.ORA 都不支持 IFILE。

也许 TNS_ADMIN 配置文件条目将为您实现相同的目标。

于 2014-10-31T10:30:38.637 回答