当前位置:  开发笔记 > 编程语言 > 正文

.net中的Windows服务无法解析tns服务名称

如何解决《.net中的Windows服务无法解析tns服务名称》经验,为你挑选了1个好方法。

我已将应用程序的一个组件从Web服务移动到Windows服务.它完全从Web服务连接到oracle,但拒绝从Windows服务中查看Tns名称.我已经完全控制了ORAHOME dir到运行该服务的帐户.

我还使用runas regedit作为服务帐户检查了注册表的服务帐户权限,它可以看到HKLM\SOFTWARE\ORACLE\HOME0详细信息和HKLM\SOFTWARE\ORACLE\ALL_HOMES.所有ORACLE_HOME键都指向同一目录.

我可以作为服务帐户登录并TNSPing sid'UAT'没有问题:

'OK (70 msec)'

我已将进程监视器附加到进程,并且服务帐户(最终在扫描大部分注册表之后)看到tnsnames.ora甚至读取它.

你在键盘后面咯咯笑吗?你能帮我吗!

Cause: OracleException

Source: System.Data.OracleClient Message: ORA-12154: TNS:could not resolve service name at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OracleClient.OracleConnection.Open()



1> David Evans..:

首先,您可以更改连接字符串以扩展tns条目:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.161.50.101)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MOUAT)));Password=password;User Id=username;

然后你得到真正的错误:

And got ‘ORA-06413: Connection not open.’

这是由于'Windows服务'路径中有括号'(DEV)'或'(UAT)'

解答:展开连接字符串以排除TNS解析,然后确保调用应用程序的路径不包含括号'('或')'.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有