Oracle连接正常,但ORA-12170:TNS:执行查询时发生连接超时

时间:2012-01-05 11:38:03

标签: c#-4.0 oracle11g windows-server-2008-r2 ora-12170

我从.net c#console应用程序对oracle 11g数据库执行查询时遇到一些错误。连接似乎已正确建立(conn.State属性为Open后面的行之后)

OracleConnection conn = new OracleConnection(connString);
conn.Open();

但是在启动任何查询时,我收到 ORA-12170 错误(连接超时)。我不认为问题出在代码中,因为对另一个数据库的相同测试工作正常。

Connection.State is Open

Error: ORA-12170: TNS:Connect timeout occurred
   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 Proj1.DB.OracleProj1.GetOpenConn(String connString) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 560
   at Proj1.DB.OracleProj1.AddLog(DateTime start, DateTime end, Int32 userID, String ip, Int32 assetID, Int32 segmentID, Int32 flowID, Int32 permissionID, Int32 permissionSubtype, Int32 resultCode, String resultDescription, String resultLog) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 3513
   at Proj1.Util.Tool.AddLog(Int32 resultCode, String resultDescription, String resultLog) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\Util\Tool.cs:line 177
   at Proj1.DB.OracleProj1.ExecuteNonQuery(OracleConnection conn, String query, String& log, Proj1Object Proj1Object) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 638
   at Proj1.DB.OracleProj1.TestConnection(String connString) in C:\WorkTV\src\projects\OracleProj1\source\Core\Proj1Core\DB\OracleProj1.cs:line 315

Connection.State is Closed

我可以通过 Oracle SQL Developer 连接到此数据库,使用相同的用户,并成功插入/删除行。

当尝试通过命令行连接 sqlplus 时,我得到 ORA-12560:TNS:协议适配器错误,因此我无法进行任何测试。

所有oracle服务都在运行。

命令Lsnrctl status说:

Instance "xxx", status READY, has 1 handler(s) for this service...

任何与这两个错误相关的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您应该尝试检查您的ODP库。这对我有用,我的内部例外是关于Oracle.DataAccess和Oracle 11g数据库之间的不兼容性。

选中linkthis answer