托管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
获得0结果。如果我手动将数据源别名直接添加到web.config TNS_ADMIN设置中指定的文件夹中的tnsnames.ora文件(而不是使用IFILE引用),那么数据源将从GetDataSources
正确返回,我可以使用ODP.NET成功连接到数据源。
有没有办法在ODP.NET中使用IFILE tns名称引用?
答案 0 :(得分:3)
对不起,在使用ODP.NET托管驱动程序时,配置文件和TNSNAMES.ORA都不支持IFILE。
也许TNS_ADMIN配置文件条目会为您实现同样的目的。