【问题标题】:ODP.NET Managed tnsnames.ora IFILE referencesODP.NET 托管 tnsnames.ora IFILE 参考
【发布时间】:2014-12-27 03:09:53
【问题描述】:

托管 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 检索数据源,该方法将返回从 t​​nsnames.ora 枚举的所有数据源的列表。

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

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

【问题讨论】:

    标签: .net odp.net tnsnames odp.net-managed ora-12154


    【解决方案1】:

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

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

    【讨论】:

    • 这绝对是事实。您是否发现有任何官方文件可以说明这一点?您还知道非托管 ODP.NET 是否支持 IFILE?谢谢
    • 我刚刚注意到您在 Oracle ODP.NET 产品团队。我认为这对我来说已经足够正式了!谢谢您的帮助。我可以将我所有的 tnsnames 条目合并到一个 tnsnames.ora 文件中,这对我有用。 TNS_ADMIN 也是另一个不错的选择。从最初的测试开始,我真的很喜欢托管的 ODP.NET 库!
    • 是的,非托管 ODP.NET 支持 IFILE 以及所有其他 TNSNAMES 参数(在这种情况下,我们不必实现它的托管版本 - 它已经由非托管网络库处理) .
    猜你喜欢
    • 2018-12-17
    • 2013-02-22
    • 2016-08-20
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多