2013-10-02 10 views
6

znalazłem ten błąd wizualne stutio 2010, gdy próbuję się połączyć z bazą danych OracleBłąd Oracle: TNS: słuchacz nie dano SERVICE_NAME w CONNECT_DATA 1

http://i.stack.imgur.com/BtIKu.jpg

http://i.stack.imgur.com/q6ffE.jpg

Oto TNSNAMES. ORA:

TNS_ALIAS= 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST =188.11.32.22)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl) 
    ) 
) 

Oto sqlnet.ora

# sqlnet.ora Network Configuration File: F:\app\user\product\11.2.0\client_1\network\admin\sqlnet.ora 
# Generated by Oracle configuration tools. 

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT. 

SQLNET.AUTHENTICATION_SERVICES= (NTS) 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 

Co mam teraz zrobić?

Odpowiedz

3

To jest stary post, ale ponieważ byłam w podobnej sytuacji, a to forum znalazło się na szczycie wyszukiwarki Google, zdecydowałem się opublikować moje rozwiązanie.

Próbowałem wysłać żądanie do serwera Oracle XML i dostał od jednej instancji: ORA-12504: TNS: słuchacz nie dano SERVICE_NAME w CONNECT_DATA

Problem był w FQDN SERVICE_NAME. Próbowano go rozwiązać przez EZCONNECT, ale w Oracle 11g EZCONNECT nie wysyła w ogóle nazwy usługi.

Rozwiązanie: 1. W "$ ORACLE_HOME \ database \ Sieć \ Administrator \ sqlnet.ora" używać tylko TNSNAMES w NAMES.DIRECTORY_PATH jak:

NAMES.DIRECTORY_PATH= (TNSNAMES) 
  1. W „$ ORACLE_HOME \ database \ network \ admin \ tnsnames.ora "utwórz dodatkową sekcję z FQDN. Jak:

    Przykład = (opis = (ADDRESS_LIST = (ADRES = (= Protokół TCP) (Host = example.domain.com) (port = 1521)) ) (CONNECT_DATA = (= SERVICE_NAME x99.domain.com) SID (= X) ) )

    EXAMPLE.DOMAIN.COM = (opis = (ADDRESS_LIST = (ADRES = (= Protokół TCP) (Host = example.domain. com) (PORT = 1521)) ) (CO NNECT_DATA = (SERVICE_NAME = x99.domain.com) SID (= X) ) )

  2. Zastosowanie tnsping utilité do ping obie nazwy: 1) tnsping przykładem; 2) tnsping example.domain.com - obie nazwy muszą odpowiedzieć.

Uwaga! Użyj własnego HOST, SERVICE_NAME I SID z cource;)

Mam nadzieję, że to pomoże komuś.

BR

Raul

4

trzeba użyć wersji skróconej, gdy ustawienie właściwości DataSource w ciągu połączenia.Wpisy w pliku TNSNames zostaną przetłumaczone na ten plik:

var conBuiler = new OracleConnectionStringBuilder(); 
//DataSource = "HOST:PORT/SERVICE_NAME" 
conBuilder.DataSource = "example.domain.com:1521/x99.domain.com" 
conBuilder.UserId = "SomeUser"; 
conBuilder.Password = "Password123"; 

var orCon = new OracleConnection(conBuilder.ConnectionString); 
Powiązane problemy