Настройка ASP.NET Core.
2. Класс Program. Продолжение
Рассмотрим подробнее, что делает метод
CreateDefaultBuilder. Его код можно найти на GitHub.1. Установка корня содержимого
builder.UseContentRoot(Directory.GetCurrentDirectory());Устанавливает текущий каталог как корень приложения.
2. Загрузка конфигурации
Из аргументов командной строки используя метод
UseConfiguration. Остальные настройки загружаются внутри метода ConfigureAppConfiguration, которому передаётся лямбда-функция, принимающая контекст хоста HostBuilderContext и строитель конфигурации, реализующий IConfigurationBuilder. Конфигурация добавляется, вызовами методов строителя:-
appsettings.json и appSettings.{Имя_Среды}.json через вызовы AddJsonFile,- секретные данные пользователя через
AddUserSecrets, - переменные среды через
AddEnvironmentVariables.3. Ведение журнала
ConfigureLogging((hostingContext, logging) => {
logging.AddConfiguration(
hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddEventSourceLogger();
})
Здесь считываются правила ведения журнала из файла конфигурации, указанные в разделе «Logging», и настраивается ведение журнала для вывода на консоль, в журнал отладки и в провайдер EventSource.4. Установка DI-контейнера
Метод
UseDefaultServiceProvider устанавливает DI-контейнер внедрения зависимостей и настраивает проверку области внедрения.Далее вызывается статический метод
ConfigureWebDefaults. Основные его моменты:5. Настройка Kestrel
В методе
UseKestrel выполняется настройка веб-сервера Kestrel параметрами из конфигурационного файла.6. Настройка необходимых сервисов
В конвейер промежуточного ПО добавляются сервисы
HostFiltering (ограничивает имена хостов, на которые откликается приложение) и ForwardedHeaders (настраивает http-заголовки X-Forwarded-For и X-Forwarded-Proto).7. Интеграция с IIS
Наконец вызываются методы
.UseIIS()Настраиваются два способа размещения приложения:
.UseIISIntegration();
- In Process запускает приложение внутри процесса IIS (с помощью
UseIIS).- Out of process выполняется в отдельном процессе и использует сервер Kestrel. IIS действует как обратный прокси-сервер, пересылающий запросы в Kestrel (с помощью
UseIISIntegration).Источник: https://www.tektutorialshub.com/asp-net-core/asp-net-core-program-cs/