ORA-12154 с Visual Studio

#c# #windows #oracle #visual-studio #devops

#c# #Windows #Oracle #visual-studio #devops

Вопрос:

У меня огромная проблема с подключением к базе данных Oracle.
Что бы я ни делал, когда я запускаю свое приложение, я получаю ошибку 500 с

ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

в подробностях системного журнала.

У моих коллег с работы идентичная настройка (идентичные web.configs и данные решения), и у них никогда не возникала эта проблема.

Анонимный фрагмент из web.config :

 <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="config" descriptor="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host.com)(PORT = 9999))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = name.com)))" />
      </dataSources>
    </version>
</oracle.manageddataaccess.client>
<connectionStrings>
    <add name="ConnectionConfig" providerName="Oracle.ManagedDataAccess.Client" connectionString="Pooling=false;Data Source=config;User Id=user;Password=password" />
</connectionStrings>
  

Подводя итог — как вы можете видеть, я не использую TNS_ADMIN с файлом TNSNAMES.ora (потому что я напрямую предоставляю источник данных).
У меня установлена Java, и клиент Oracle DB работает нормально.
Другие ребята используют тот же web.config, поэтому пароль и другие данные верны.

Пожалуйста, поделитесь любыми идеями!

Редактировать:

монитор процесса показывает, что файл tnsnames.ora был прочитан, поэтому я создал его в исходном каталоге (убедитесь, что он был прочитан при запуске) добавил

     (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = host.com)(PORT = 1521))
        )
        (CONNECT_DATA = 
            (SERVER = DEDICATED)
            (SERVICE_NAME = name.com))
    )
    
  

и все та же ошибка

Комментарии:

1. Указана ли у вас переменная среды TNS_ADMIN ? Я думаю, что он имеет приоритет над файлом web.config (и может указывать на пустой файл / каталог)

2. Попробуйте убрать пробелы из строки описания. Например (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.230)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TICKET)))

3. @WernfriedDomscheit Я на 99% уверен, что когда я использую ODP.NET и укажите источник данных в теге <oracle.manageddataaccess.client> — я все равно не использую TNS_ADMIN, у меня есть эта переменная среды для пользователя и системы, есть доступ к файлу — он не содержит моего источника данных, но другие ребята используют те же имена tnsnames с тем же web.config и у них нет проблем: (

4. @DmitryDemin попробовал это, и это не помогло 🙁

5. Если вы уверены только на 99%, загрузите Process Monitor из Sysinternals и проверьте, какой файл действительно загружен (сначала).