Oracle.ManagedDataAccess TNS_ADMIN в Web.Config
Я пытаюсь настроить свое решение, использующее библиотеку Oracle.ManagedDataAccess, чтобы использовать имена TNS в строках соединения вместо явных источников данных. До каких-либо изменений программа работала правильно, но все мои попытки настроить параметры TNS потерпели неудачу.
У меня есть файл TNS локально на моем компьютере для разработки в C:\oracle\tns\tnsnames.ora.
Я обновил строку подключения в файле web.config, чтобы использовать псевдоним, присутствующий в моем файле TNS:
<connectionStrings>
<add name="OracleConnectionString"
connectionString="Data Source=DEV1;Persist Security Info=True;User ID=myUser;Password=myPassword;"
providerName="System.Data.OracleClient"/>
</connectionStrings>
Также был добавлен configSection и конфигурация для библиотеки:
<configuration>
<configSections>
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</configSections>
....
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="TNS_ADMIN" value="C:\oracle\TNS\tnsnames.ora" />
</settings>
</version>
</oracle.manageddataaccess.client>
</configuration>
Когда я пытаюсь запустить программу, я получаю сообщение об ошибке ORA-12154: TNS:could not resolve the connect identifier specified
, Я не уверен, что я настраиваю неправильно, поскольку это не дает много информации.
Следует отметить, что решение состоит из проекта MVC с web.config и библиотеки классов, которая обрабатывает доступ к базе данных. Ссылка на Oracle.ManagedDataAccess
находится в библиотеке классов. Я попытался поместить раздел конфигурации Oracle (и его configSection) в web.config, app.config и оба, но ни одна из этих настроек не сработала.
1 ответ
Во -первых, ваша конфигурация для управляемого оракула должна быть в конфигурационных файлах вашего начального проекта. В вашем случае, я думаю, это должно быть в "web.config"
во-вторых, ваш TNS_ADMIN должен быть папкой, а не файлом.
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="TNS_ADMIN" value="C:\oracle\TNS" /> //****change is here.
</settings>
</version>
</oracle.manageddataaccess.client>
</configuration>