2015-07-24 2 views
0

моя проблема заключается в следующем:ODP.NET проблемы с TNS, 32 бита клиентские базы данных 64 бита

У меня есть Oracle в 32 бита Ubuntu Server 12.04 LTS, но я создал еще одну базу данных для перенастройки в Windows 2008 R2 64 бит. Я успешно установил оракул и скопировал все данные, которые у меня есть. Проблема возникла, когда мне пришлось изменить подключения одного из моих проектов .NET от использования первого ко второму, где я получил «ORA-12154: TNS: не удалось разрешить указанный идентификатор соединения». Я использовал 32-битные DLL-файлы ODAC, загруженные из Oracle.

TNSNAMES:

 
LIDA_ALC_DBLILLY = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.107)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

LIDA_INDY_DBLILLY = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.107)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl2) 
    ) 
) 

HARVEST_DBLILLY = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.107)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl2) 
    ) 
) 

DELTA_DBLILLY = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.107)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl2) 
    ) 
) 

AUTOLAB_DBLILLY = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.107)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl2) 
    ) 
) 

    TEST = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.107)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl2) 
    ) 
) 

    LIDA_ALC_ASTREA = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.103)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

LIDA_INDY_ASTREA = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.103)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

HARVEST_ASTREA = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.103)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

DELTA_ASTREA = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.103)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

AUTOLAB_ASTREA = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.103)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

    TEST_ASTREA = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.109.103)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.cartif.local) 
    ) 
) 

_ASTREA являются окна одной и _DBLILLY в Linux. С помощью этих tnsnames я могу подключиться только к dblilly. ips верны, порт и имена тоже. ODAC установлен в C: \ OracleODAC \ x32 и я добавил в каталог PATH. Я также добавил каталог bin. Кроме того, ORACLE_HOME и ORACLE_SID установлены правильно.

Любой отзыв? Заранее спасибо.

EDIT: Я могу подключиться к тому же дому с TOAD. Я могу подключить свой проект к DBLILLY, но не к ASTREA, с компилируемой версией x86/x64.

EDIT2: <add name="DELPRD" connectionString="Data Source=DELTA_ASTREA;User ID=****;Password=****;" providerName="Oracle.DataAccess.Client" />

ответ

1

Я бы проверить клиента оракула в databas-адм-программы первого. Я использую Toad, который я настраиваю, чтобы использовать тот же клиент oracle, что и мои .net-приложения. Если он работает, вы можете исключить, что проблема TNS является проблемой, и просто сосредоточьтесь на 32-разрядной 64-разрядной проблеме в вашем приложении .net. PS: Я знаю, что это подходит для bettre в качестве комментария, но я не мог прокомментировать becasue im a n00b здесь

+0

Скачать и протестированы с ЖАБА. IT правильно подключается, и я могу видеть данные. Но хороший совет! –

+0

Отлично! Вы изменили свое имя в строке соединения на новые имена TNS? –

+0

Я отправил соединительную строку –

-2

Поскольку база данных - 64 бит, я думаю, что ODAC должен быть 64 бит. Посмотрите на эту страницу, чтобы получить хорошую: [http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html]

Затем, я полагаю, слушатель правильно запущен ???

И в ваших TNSNAMES, вы, возможно, придется суффикс идентификатор подключения: TEST_ASTREA.cartif.local = (DESCRIPTION = (ADDRESS = (ПРОТОКОЛ = TCP) (HOST = 192.168.109.103) (PORT = 1521)) (CONNECT_DATA = (SERVER = ПОСВЯЩЕННЫЙ) (SERVICE_NAME = orcl.cartif.local) ) )

Надежда, что помогает ...

Christian

+0

Я подключаюсь с использованием 32-разрядного ODAC к базе данных 64 бит с помощью TOAD. –

+0

ODAC, разумеется, НЕ должен соответствовать битности базы данных. –

0

Похоже, у вас есть простая ошибка разрешения TNS для меня. Возможно, у вас несколько домов оракула, и вы этого не понимаете, поэтому вам не хватает второго файла имен tns. ИМО - самый простой способ заставить файл имен tns использовать переменную среды TNS_ADMIN. Вы также можете вставлять строку TNS вместо псевдонима непосредственно в строку соединения. Если вы используете управляемый клиент, псевдоним tns может быть определен в самом файле конфигурации. Все это показано в этом другой ответ:

https://stackoverflow.com/a/31592492/852208

Смежные вопросы