Ошибка подключения: Oracle.DataAccess.Client.OracleException ORA-12170 - PullRequest
2 голосов
/ 03 апреля 2010

Это заняло у меня много часов. Я должен заставить это приложение .Net работать в системе XP. Кто-то, кажется, испортил некоторые файлы, поэтому conn.Open () в C # вызывает эту ошибку:

    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 и БД находятся на одном компьютере.

1 Ответ

0 голосов
/ 03 апреля 2010

A аналогичный вопрос SO был решен, когда было определено, что база данных была установлена ​​на коробке Windows с использованием DHCP. Как я уже сказал в этом ответе, если вы используете DHCP на Windows-сервере с Oracle, необходимо установить Microsoft Loopback Adapter.

...