2010-04-03 60 views
2

這花了我的許多小時。我必須讓這個.Net應用程序在XP系統上運行。似乎有人搞砸了一些文件,以便conn.Open()在C#導致此錯誤:連接錯誤:Oracle.DataAccess.Client.OracleException ORA-12170

Connection Error:Oracle.DataAccess.Client.OracleException ORA-12170: 
TNS:Connect timeout occurred at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection 
conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure) at 
Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, 
IntPtr opsErrCtx, Object src) at Oracle.DataAccess.Client.OracleConnection.Open() at 
Service.connect(Int32 sql_choice, String databaseIdentifier, String authenticationKey) in 
c:\Documents .... 

這是我的sqlnet.ora文件:

# sqlnet.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora 

SQLNET.AUTHENTICATION_SERVICES= (NTS) 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 

SQLNET.INBOUND_CONNECT_TIMEOUT = 180 
SQLNET.SEND_TIMEOUT = 180 
SQLNET.RECV_TIMEOUT = 180 

這是tnsnames.ora中:

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora 
# Generated by Oracle configuration tools. 

ORACLE2 = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = dell)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = oracle2) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = dell)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

這是listener.ora中:

# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora 
# Generated by Oracle configuration tools. 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = C:\oracle\product\10.2.0\db_1) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = dell )(PORT = 1521)) 
    ) 
) 

我嘗試將主機名更改爲localhost 127.0.0.1,但這不起作用。另外,

  • 我可以從SQL Plus執行查詢。
  • 系統上沒有防火牆
  • .Net應用程序和數據庫位於同一臺計算機上。
+0

您安裝了哪個版本的ODP.NET?哪個版本?什麼是你的應用程序的位版本? – 2014-02-16 11:04:17

回答

0

A similar SO question在確定數據庫安裝在使用DHCP的Windows盒子上時解決了。正如我在回答中所說的,如果您在帶有Oracle的Windows機器上使用DHCP,則需要安裝Microsoft環回適配器。