gpt4 book ai didi

vb.net - 仅当作为服务运行时 ODP.NET ORA-12154 TNS 错误

转载 作者:行者123 更新时间:2023-12-02 00:11:20 25 4
gpt4 key购买 nike

我正在 VB.NET 中编写一项服务,以使用 ODP.NET 将数据持续记录到 Oracle DB

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

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

因此,当使用以下示例连接字符串时

"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 文件夹添加到 PATH),但它不起作用。

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

我在这里缺少什么?

谢谢

最佳答案

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

尝试为运行该服务的任何用户添加对整个 Oracle 客户端目录的读取权限。

关于vb.net - 仅当作为服务运行时 ODP.NET ORA-12154 TNS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13309702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com