2010-04-03 64 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环回适配器。