3

我在我的代码中编写了这个简单的连接:

OracleConnection con = new OracleConnection("Data Source=ORCL;User    
  ID=agapus;Password=agap");
con.Open();

然后我按 F5 运行我的应用程序并收到上述错误。无论是简单的控制台应用程序还是 ASP.NET 网站,都会发生此错误。我已经尝试过 Oracle.DataAccess 和旧的 windows oracle API。我尝试了几种 Oracle 服务,但都没有运气。我正在测试此连接的环境是 Windows Server 2008R2。我可以使用 SQLPlus 或 TOAD 轻松连接到任何数据库。我试过明确指定 TNS_NAMES.ORA 文件的位置,也不起作用。唯一有效的是当我在连接字符串中指定完整路径时。因此,如果我将上面的代码更改为下面的代码,它将起作用:

string conString = "user id=agapus;password=agap;data source=(DESCRIPTION=(ADDRESS=     
  (PROTOCOL=tcp)(HOST=172.16.0.121)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))";
  ID=agapus;Password=agap");
OracleConnection con = new OracleConnection(conString);
con.Open();     
4

1 回答 1

0

如果您查看您的 sqlnet.ora 文件,相信您会发现默认域设置为 .world 。

这将使您的连接 ORCL.world 的正确名称。

在 TNSNAMES.ora 中,您的连接名称的末尾可能还包含 .world,而默认域则没有。

运行 tnsping 会得到什么?

于 2012-12-10T12:24:26.967 回答