2012-01-05 226 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