BizTalk WCF ORA-12154:TNS:无法解析指定的连接标识符

时间:2018-01-20 19:26:27

标签: oracle biztalk tnsnames

我有一个BizTalk 2013r2应用程序,其中一个WCF-Oracle发送端口在32位主机下运行。

在我的测试环境中运行时,它可以正常工作。但是,在我的开发框中,我收到以下错误:

  

“ORA-12154:TNS:无法解析指定的连接标识符”

发送端口上设置的地址是“oracledb:// test_godw_lincoln /”。我的理解是应该从本地tnsnames.ora文件中解析ip地址和端口。我有一个正确设置TNS_ADMIN的系统环境变量:

enter image description here

在命令提示符下,如果我输入“set tns_admin”,则会显示以下内容:

  

TNS_ADMIN = C:\应用\ biztalk.admin \产品\ 12.1.0 \的Client_1 \网络\管理员

如果我打开文件“C:\ app \ biztalk.admin \ product \ 12.1.0 \ client_1 \ Network \ Admin \ tnsnames.ora”,那么我会看到以下条目:

test_godw_lincoln =
   (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xx.xx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = gotest) 
    )
  )

(我已经替换了真实的IP地址)

如果我在同一个dev vm上打开Sql Developer,那么我可以使用tnsname条目“test_godw_lincoln”打开与所需数据库的连接:

enter image description here

我意识到Oracle可以在不使用tnsnames.ora的情况下通过适配器进行寻址,但我知道如果要使用环境事务(应用程序确实使用它们),那么地址必须是通过tnsnames.ora

有关如何使用此特定VM查找问题原因的任何建议吗?

来自Dmitir的问题 - 注册表是空的:

registry

来自Felix的建议 - 我能够从Visual Studio服务器资源管理器在同一台开发服务器上创建连接:

enter image description here

但是,如果我尝试从“使用适配器服务”向导(添加生成的项目)进行连接,那么我会收到ORA-12154错误:

enter image description here

3 个答案:

答案 0 :(得分:0)

完成所有这些更改后,您是否重新启动了主机实例?

答案 1 :(得分:0)

尝试连接时不带tnsname,连接字符串格式为:host:port / database_name

答案 2 :(得分:0)

这归结为tnsnames.ora文件的一个神秘问题。来自@Hichamveo的建议有帮助,而是在工作环境中尝试我的坏tnsnames.ora文件,我从一个有效的环境中复制了tnsnames文件。我发现dev VM然后开始工作 - 所以我知道问题出在tnsnames.ora文件而不是ODAC / ODP.Net程序集。

然后我花了很长时间试图找出坏的tnsnames文件坏了什么。我使用了文件比较工具并在http://brantwills.github.io/tns-check/尝试了一个linter,但这些没有显示任何问题。