C# Oracle TNS协议适配器错误

C# Oracle TNS协议适配器错误,c#,oracle11g,visual-studio-2010,tnsnames,C#,Oracle11g,Visual Studio 2010,Tnsnames,我有一个远程Oracle 11G服务器,可以通过SQL Plus和Visual Studio的服务器资源管理器连接到该服务器。然而,当我在我的C代码中使用相同的连接字符串时,我得到了ORA-12560:TNS:ProtocolAdapter错误 我的连接字符串看起来像已在尝试完成的扩展版本: Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.18.99.99)(PORT=1521)) (CONNECT_DATA=(SERVI

我有一个远程Oracle 11G服务器,可以通过SQL Plus和Visual Studio的服务器资源管理器连接到该服务器。然而,当我在我的C代码中使用相同的连接字符串时,我得到了ORA-12560:TNS:ProtocolAdapter错误

我的连接字符串看起来像已在尝试完成的扩展版本:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.18.99.99)(PORT=1521))    (CONNECT_DATA=(SERVICE_NAME=MYORADB)));User Id=myuserid;Password=MyPasswd;
我最初尝试使用主机名而不是IP连接,结果是:

ORA-12545: Connect failed because target host or object does not exist
对于IP地址,我得到协议适配器错误

ORA-12560: TNS:protocol adapter error
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,     OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
at Oracle.DataAccess.Client.OracleConnection.Open()
at TestConnection.Form1.btnTest_Click(Object sender, EventArgs e) 
我使用的是11g客户端安装目录中的Oracle.DataAccess版本2.112.1.0


服务器资源管理器的连接方式是否与代码中的连接方式不同?

您是否尝试过将DESCRIPTION=ADDRESS\u LISTADDRESS=PROTOCOL=TCPHOST=172.18.99.99PORT=1521CONNECT\u DATA=SERVICE\u NAME=MYORADB作为数据源?您可能还希望启用跟踪,这是我当前使用的字符串。我可以从该字符串中打开跟踪吗?不可以,但是你可以修改app.config,类似于链接,这应该会生成一个跟踪文件。您是否安装了多个32位和64位Oracle客户端?只有一个32位客户端,但GAC作为Oracle.DataAccess DLL用于64位和32位。我的项目引用的是32位11g客户端,而不是GAC DLL。但是,我尝试了其他方法,得到了相同的结果。您在\network\admin中有sqlnet.ora和tnsnames.ora吗?我唯一能想到的是使用CONNECT\u DATA=SID=MYORADB而不是SERVICE\u NAME。