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>
Другие вопросы по тегам