ODP.NET ORA-12154 TNS仅在运行为服务时出错



我正在使用odp.net

在vb.net中编写一项服务,以连续将数据记录到Oracle DB

该应用程序最初是作为基本Windows表单应用程序写的,但是当我将其移植到服务时,它似乎看不到TNS文件,并且抛出以下错误消息:

Service cannot be started. Oracle.DataAccess.Client.OracleException
ORA-12154:TNS:could not resolve the connect identifier specified    

因此,使用以下示例ConnectString

"Data Source= example;User Id= user;Password=password;"

我得到ORA-12154

如果我将完整的TNS条目直接提供给应用程序,例如

"Data Source= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = EXAMPLE)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = EXAMPLE) ) );User Id= user;Password=password;"

然后它有效,但是当我最初将应用程序作为表单应用程序开发时,它都可以。

我以为环境变量可能未正确设置,但我添加了所需的系统变量(oracle_home/tns_admin/将Oracle文件夹添加到路径上),并且不起作用。

服务正在运行/安装的路径不包含括号,我已经使用Process Monitor检查了该过程,并且看起来它正在使用正确的环境变量启动(Oracle_home/TNS_ADMIN/PATH都在那里正确)。用于测试的机器正在运行Win XP

我在这里缺少什么?

谢谢

我怀疑该服务运行的用户是否需要对整个Oracle目录树的文件系统许可。这感觉就像一个权限问题,因为它无法解析连接标识符,但是如果不需要。

尝试将读取权限添加到整个Oracle客户端目录中,该服务正在运行的任何用户。

相关内容

  • 没有找到相关文章

最新更新