我正在 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
我在这里想念什么?
谢谢