托管 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 名称引用?