2012-01-05 227 views
2

我有一些错误从.net c#控制台应用程序对oracle 11g数据库执行查询。连接似乎是适当确定(该​​属性是以下行后OpenOracle连接正常,但ORA-12170:TNS:执行查询时发生连接超时

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 throught命令行连接,我得到一个ORA-12560:TNS:协议适配器错误,所以我不能做任何测试。

所有的oracle服务都在运行。

命令Lsnrctl status说:

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

与任何两个错误的任何帮助将不胜感激。

+0

我刚刚通过将tnsnames.ora复制到CLIENT_HOME \ network \ admin文件夹并连接到指定服务别名的sqlplus来解决了ORA​​-12560:sqlplus user/password @ alias – klautern 2012-01-05 15:37:52

+0

查看内部异常。 – 2012-01-06 13:59:01

+0

我已经添加了这个问题的完整例外 – klautern 2012-01-09 07:41:09

回答

1

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

检查此linkthis answer