Как настроить приложение ASP.NET Core 2 с разными URL / портами для разных баз данных - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь настроить приложение ASP.NET Core (2.1) на одном и том же сервере IIS с двумя разными URL / портом, каждый URL / порт должен использовать разные подключения к базе данных, например:

  1. http://localhost:55001 (использовать соединение с БД QA)
  2. http://localhost:55002 (использовать соединение с БД производства)

Этот сценарий предназначен для использования веб-приложения интрасети.Группа пользователей будет использовать приложение Production.Другая группа пользователей будет использовать приложение QA или Staging. Эти два соединения urls / db должны быть включены в одном приложении одновременно , чтобы иметь одно основное приложение (для политик, обслуживания и использования ресурсов компьютера) и две разные базы данных.

Я попытался настроить два файла appsettings.json: первый (appsettings.Release.json) задает строку подключения к производственной базе данных и URL / порт applicationUrl.Второй (appsettings.QA.json) определяет другую строку подключения к базе данных и другой applicationUrl.

appsettings.Release.json:

{
  "ConnectionStrings": {
    "default": {
      "ConnectionString": "<production-connection-string>",
      "ProviderName": "Oracle.ManagedDataAccess.Client"
    }
  },
"applicationUrl": "https://localhost:55001",
...
}

appsettings.QA.json:

{
  "ConnectionStrings": {
    "default": {
      "ConnectionString": "<qa-connection-string>",
      "ProviderName": "Oracle.ManagedDataAccess.Client"
    }
  },
"applicationUrl": "https://localhost:55002",
...
}

Теперь я немного растерялся, следующие настройки конфигурации, которые мне нужно достичь, сбивают с толку и неясны для меня.Я даже не знаю, возможно ли то, чего я пытаюсь достичь, или приемлемо.Если я определю значение переменной ASPNETCORE_ENVIRONMENT для каждого набора приложений [среда / сценарий] .json, то я не смогу одновременно использовать два значения для этой переменной, верно?не может быть ответом на мою проблему.Кроме того, мне нужно правильно настроить классы запуска и (возможно) программы для достижения того, что я ищу.

Итак, на данный момент, любой совет, руководство, фрагмент кода или решение, которое вы, ребята, можете найти, будуточень ценится.

1 Ответ

0 голосов
/ 08 июля 2019

Я думаю, что ваш вопрос в основном сводится к тому, как установить различные значения для ASPNETCORE_ENVIRONMENT для экземпляра приложения. В большинстве случаев лучшим вариантом для развертывания IIS является добавление раздела <environmentVariables> в <aspNetCore> в файле web.config:

<aspNetCore ...>
    <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Staging" />
    </environmentVariables>
</aspNetCore>

Чтобы это автоматически обрабатывалось при публикации, вам нужно изменить .pubxml для своего профиля публикации и добавить что-то вроде:

<PropertyGroup>
    <EnvironmentName>Staging</EnvironmentName>
</PropertyGroup>

Это автоматически добавит соответствующие настройки <environmentVariables> в сгенерированный файл web.config при публикации.

Для получения дополнительной информации см .: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-2.2#configuration-with-webconfig

...