Как настроить tnsnames.ora в основном веб-приложении asp.net? - PullRequest
0 голосов
/ 24 апреля 2019

У меня небольшое приложение asp.net core 2.2, которое должно получить доступ к базе данных oracle;Я использую NuGet Oracle.ManagedDataAccess.Core (2.18.6), и он просто работает на моей машине.

При развертывании его на сервере Windows с IIS я помещаю файл tnsnames.ora в приложениякаталог и снова он просто работает.

Теперь я хочу использовать общий tnsnames.ora файл.Я пробовал web.config, как показано ниже (ответ от StackOverflow / Google отвечает на аналогичные вопросы).

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
  </configSections>

  <!-- skipping app stuff -->

  <oracle.manageddataaccess.client>
    <version number="*">
      <settings>
        <setting name="tns_admin" value="F:\path\to\tnsadmin\folder" />
      </settings>
    </version>
  </oracle.manageddataaccess.client>
</configuration>

К сожалению, это не работает (а поскольку основная версия Oracle.ManagedDataAccess.dll не имееткласс ODPMSectionHandler это не является большим сюрпризом).

Итак, есть ли способ получить общий файл tnsnames.ora с ядром odp.net?

(PS, я думаю, мынужен тег odp.net-core)

ОБНОВЛЕНИЕ

  1. Необходимо убедиться, что w3wp.exe действительно может получить доступ к файлам.

  2. Установка системной переменной среды TNS_ADMIN является возможным решением.В данном конкретном случае этого будет достаточно, но мне все еще интересно, как настроить его через web.config.

1 Ответ

0 голосов
/ 25 мая 2019

ODP.NET Core не поддерживает конфигурационные файлы, как это делает стандартный ODP.NET. Вам нужно будет использовать API конфигурации:

https://docs.oracle.com/en/database/oracle/oracle-data-access-components/18.3/odpnt/InstallCoreConfiguration.html

...