3

我的 WCF 服务用于Oracle.DataAccess.Client连接到 oracle db。它已经使用以下连接字符串成功运行了一年左右:

OracleConnection conn = new OracleConnection(String.Format("USER ID=XXX;PASSWORD=XXX;DATA SOURCE={0}", db));

我最近买了一台新电脑,不得不重新安装 Oracle 客户端。我尝试将新的 operationContract 添加到现有服务中,并且不得不重新引用新添加的 ODAC。突然,它不再连接了。它在connection.open();

我的 TNSnames.ora 文件与以前相同。我什至尝试将其复制到项目的 bin 目录中只是为了笑。

蟾蜍有效。我可以从 OraHome 成功 tnsping 我的数据库。我可以使用 访问数据库System.Data.OracleClient,但我不想重写所有内容以使用已弃用的 dll。

如果 tnsnames 存在,路径在我的 env 变量中标识,并且侦听器正在运行,还应该检查什么?我确实注意到HKEY_LOCAL_MACHINEOracle 的密钥指向了错误的 OraHome 路径,但即使我修改了路径,它仍然无法连接,所以我把它放回去了,担心我会让 TOAD 也停止工作。

有什么建议么?

4

1 回答 1

0

如果实例化连接的用户没有运行 Oracle 客户端的权限,则可能会发生此错误。确保运行 WCF 服务的帐户具有正确的权限。

于 2012-10-23T18:31:26.550 回答