Как настроить среду хостинга для конкретного сайта?

Мой сайт работает под IIS среди дюжины других. Я хочу установить его среду размещения в Staging, но я не могу использовать переменную среды ASPNETCORE_ENVIRONMENT для ее установки из-за вышеупомянутых других сайтов.

Как я могу установить среду хостинга для определенного сайта.

P.S. Нашел документацию, в которой рассматривается этот конкретный сценарий. Короткая история — изменить web.config (да, устаревший файл).

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
0
0
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете переопределить ASPNETCORE_ENVIRONMENT для одного сайта внутри IIS без изменения и повторного развертывания приложения.

  1. Откройте диспетчер IIS
  2. Выберите веб-сайт, для которого вы хотите установить среду хостинга.
  3. Нажмите на функцию «Редактор конфигурации»
  4. В «Редакторе конфигурации» выберите system.webServer/aspNetCore в раскрывающемся списке и справа от этого, НЕ ЗАБУДЬТЕ выбрать ApplicationHost.config. Если вы забыли, вы установите эту переменную в используемом web.config для работающего сайта. Затем, потому что он будет перезаписан при развертывании новой версии веб-сайта. ApplicationHost.config устанавливает машинный уровень, поэтому настройка будет жить в другом месте.
  5. Отметьте строку environmentVariables и нажмите на точки дерева в конце, чтобы отредактировать список.
  6. Нажмите кнопку «Добавить» и установите name на ASPNETCORE_ENVIRONMENT и value на Staging
  7. Перезапустите сайт, чтобы изменения вступили в силу.

Также вы можете установить среду из кода или конфигурации с помощью метода UseEnvironment. Обратите внимание, что вам необходимо повторно развернуть приложение, чтобы применить эти изменения:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseEnvironment("Staging");
}

@LexLi А как иначе? В документах не увидел.

AngryHacker 13.02.2023 22:34

@AngryHacker learn.microsoft.com/en-us/aspnet/core/fundamentals/host/…

Vadim Martynov 13.02.2023 22:41

1. Нет необходимости модифицировать applicationHost.config. 2. Жесткая среда кода в исходном коде — явно плохой способ.

Lex Li 13.02.2023 22:43
Ответ принят как подходящий

Хотя его нелегко найти, но когда Microsoft задокументировала модуль ASP.NET Core, они предоставили пример кода о том, как установить переменные среды в web.config, поэтому нет необходимости следовать другому ответу, чтобы изменить applicationHost.config.

<aspNetCore processPath = "dotnet"
      arguments = ".\MyApp.dll"
      stdoutLogEnabled = "false"
      stdoutLogFile = ".\logs\stdout"
      hostingModel = "inprocess">
  <environmentVariables>
    <environmentVariable name = "ASPNETCORE_ENVIRONMENT" value = "Development" />
    <environmentVariable name = "CONFIG_DIR" value = "f:\application_config" />
  </environmentVariables>
</aspNetCore>

Это то же самое web.config, сгенерированное dotnet publish, поэтому я считаю, что вы считаете естественным, что дальнейшие изменения происходят в том же месте.

Другой способ, которым вы можете захотеть, — это настроить такие переменные среды в пуле приложений.

Другие вопросы по теме