#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 и проверьте, какой файл действительно загружен (сначала).