ODP.NET TNS:无法解决错误

Posted

技术标签:

【中文标题】ODP.NET TNS:无法解决错误【英文标题】:ODP.NET TNS: could not resolve error 【发布时间】:2012-10-25 15:42:29 【问题描述】:

Win 7 64 位 SP 1

从 .NET 程序中得到错误“ORA-12154: TNS:could not resolve the connect identifier specified”。

我已经在我的机器上安装了 Oracle 11.2 32 位客户端。

使用 Visual Studio 2010 我包含来自 C:\oracle\Ora112\odp.net\bin\4\Oracle.DataAccess.dll 的引用。

使用连接字符串值:User Id=myid;Password=mypw;Data Source=DBNAME;pooling=false;Connection Timeout=45;

运行 TNSPING DBNAME 有效。它说它正在使用 C:\oracle\Ora112\network\ADMIN\sqlnet.ora。此文件设置为使用 ldap 而不是 tnsnames。

运行 sqlplus 有效。我可以使用 myid/dbinstance 进行连接

我想不出为什么 ODP.NET 在所有这些其他事情都正常工作时会给出这个错误的任何原因。有什么想法吗?

【问题讨论】:

【参考方案1】:

我不得不为不同的服务器处理不同的连接字符串。尝试以下建模的字符串:

DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dbservername.company.com)(PORT=1542)))(CONNECT_DATA=(SID=your_sid_from_tnsnames.ora)(SERVER=DEDICATED)));USER ID=myid;Password=mypw

【讨论】:

获取“ORA-12545:连接失败,因为目标主机或对象不存在”。根据您拥有的和 tnsping 返回的内容尝试了一些不同的变体,但仍然收到相同的错误: 主机/对象不存在?尝试使用服务器的 IP 地址(HOST=11.22.33.44),而不是使用服务器名称。另外,更改为 (PORT=1521),这是 Oracle 的默认端口。

以上是关于ODP.NET TNS:无法解决错误的主要内容,如果未能解决你的问题,请参考以下文章

ODP.NET Oracle.ManagedDataAcess 随机 ORA-12570 错误

ODP.NET 过程编译

Oracle 快速连接故障转移不适用于 ODP.NET。获取连接请求超时错误

ODP.Net 数组绑定异常处理

使用带有 MSGID 的 ODP.NET 使 Oracle AQ 出队

Oracle ODP.NET BulkCopy 到临时表问题