我目前正在尝试连接到Oracle数据库。我可以在我的开发机器上正常连接,但是当我部署到我的Win2k3 sp2服务器时,我收到以下错误。
Faile打开连接... Oracle.DataAccess.Client.OracleException ORA-12541:TNS:没有谎言在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object scr,String procedure,Boolean bCheck)
任何想法,想法,指示都会有所帮助。我正在使用Oracle.DataAccess.dll版本4.112.1.2。
由于
答案 0 :(得分:3)
实际问题是防火墙。
显然我的本地开发机器可以访问托管Oracle的服务器,但我的开发服务器没有。一旦两个服务器之间存在开放连接,TNS:没有听众错误就消失了。
这似乎是Oracle客户端返回的虚假错误消息。监听器在那里,我的配置(连接字符串)是有效的,但两台机器之间没有可用的连接。
答案 1 :(得分:0)
您的TNSNames条目指向的计算机似乎没有运行侦听器。我可以看到三个不同的选项...(1)条目指向tnsnames.ora中的不同机器(两台机器上都不同),(2)这两台机器之间的DNS分辨率不同,或者(3)监听器是如果机器上有一个正在运行,可能会在另一个端口上侦听。
答案 2 :(得分:0)
我也学到了另一件事。 TNSNAMES.ora文件,在Network \ admin文件夹中,cannon在实例的开头有空格。
示例:
MYORACLESERVER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = myoracleserver.mydomain.com)(PORT = 1525))
)
(CONNECT_DATA =
(SID = MYORACLESERVER)
)
)