8 Способов Задать URL в Приложении ASP.NET Core. Продолжение
Начало
1. UseUrls()
Первый и самый простой вариант установки URL — жёстко запрограммировать их при настройке WebApplicationBuilder с помощью UseUrls():
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls(
"http://localhost:5003",
"https://localhost:5004");
var app = builder.Build();
…
app.Run();
2. WebApplication.Urls и WebApplication.Run()
WebApplication предоставляет свойство Urls:
…
var app = builder.Build();
…
app.Urls.Add("http://*:5003");
app.Run();
Аналогичного эффекта можно достичь, передав URL в app.Run():
app.Run("http://*:5003");Однако в app.Run() вы можете предоставить только один URL.
Жёсткое кодирование URL не особенно чистое или расширяемое решение, поэтому оно используется редко. Чаще URL задают через конфигурацию приложения.
ASP.NET Core имеет расширяемую систему конфигурации, которая может загружать значения из нескольких источников конфигурации. По умолчанию ConfigurationManager, используемый в .NET 8, загружает значения из следующих мест:
- файл appsettings.json,
- необязательный файл для конкретной среды: appsettings.ENVIRONMENT.json,
- пользовательские секреты,
- переменные среды,
- аргументы командной строки
Вы можете добавить дополнительных поставщиков для загрузки из других мест. Вы можете использовать эту систему для загрузки настроек приложения, но ASP.NET Core также использует её для настройки своих внутренних компонентов.
3. Аргументы командной строки
Аргументы командной строки по умолчанию переопределяют значения всех других параметров конфигурации. Передайте переменную в качестве аргумента при запуске приложения, добавив префикс
--:dotnet run -- --urls "http://localhost:5100"
Можно передать несколько значений, разделённых точкой с запятой:
dotnet run -- --urls "http://*:5100;http://localhost:5101"
Это также работает и в среде выполнения dotnet, где вы передаёте путь к скомпилированной dll в dotnet вместо использования dotnet run:
dotnet ./WebApplication1.dll --urls "http://*:5100;http://localhost:5101"
Аналогично можно задать порты --http_ports и --https_ports:
dotnet run -- --http_ports "5100;5101" --https_ports "5003;5004"
Заметьте, что лишние -- в команде dotnet run не являются опечаткой; они необходимы для того, чтобы аргументы определённо интерпретировались как аргументы для конфигурации, а не как аргументы самой команды run.
Продолжение следует…
Источник: https://andrewlock.net/8-ways-to-set-the-urls-for-an-aspnetcore-app/