Подготовка и публикация приложения в IIS¶
Для приложения ASP.NET Core IIS будет действовать как обратный прокси-сервер. IIS будет пересылать входящие запросы и исходящие ответы приложения.
Для этого требуется некоторая настройка приложения.
Интеграция с IIS добавляется по умолчании при использовании метода IHostBuilder.ConfigureWebHostDefaults(), используемого в шаблонах по умолчанию.
Если настраивается собственный HostBuilder, нужно добавить интеграцию методами UseIIS() или UseIISIntegration():
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHost(webBuilder =>
{
webBuilder.UseKestrel();
webBuilder.UseStartup<Startup>();
webBuilder.UseIIS(); //внутрипроцессорная модель хостинга
webBuilder.UseIISIntegration(); //внепроцессорная модель хостинга
});
}
При запуске приложения эти методы настраивают приложение для сопряжения с IIS. Помимо прочего, они:
- определяют URL-адрес, который будет использовать IIS для пересылки запросов и настраивают его на прослушивание этого адреса;
- настраивают приложение для интерпретации запросов от IIS, как идущих от клиента, настроив пересылку заголовков;
- активируют аутентификацию Windows, если потребуется.
Внутрипроцессный и внепроцессный хостинг в IIS
Внепроцессный хостинг предполагает, что обратный прокси и приложение выполняются в разных процессах. Однако, начиная с ASP.NET Core 3.0 появилась возможность, при которой IIS размещает приложение в собственном процессе, уменьшая межпроцессное взаимодействие и повышая производительность. О различиях между этими моделями, преимуществах каждой и о том, как переключаться между ними можно посмотреть здесь
Еще один важнгый аспект. IIS, как и раньше, использует файл web.config для настройки приложений. Важно, чтобы приложение содержало этот файл при публикации в IIS.
Если приложение содержит wrb.config, он будет скопирован при публикации. Если нет, он будет создан при публикации.
Далее нужно опубликовать приложение при помощи команды
и скопировать его из папки publish_folder в папку, указанную при настройке IIS.
Дата создания : 14 октября 2022 г.