Oracle.ManagedDataAccess TNS_ADMIN в Web.Config - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь настроить свое решение, использующее библиотеку 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 Ответ

0 голосов
/ 23 октября 2018

Во-первых, ваша конфигурация для управляемого оракула должна быть в конфигурационных файлах вашего начального проекта.В вашем случае, я думаю, это должно быть в "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>
...