Введение
В быстро развивающейся сфере веб-разработки.NET Core выделяется своей способностью эффективно создавать современные кроссплатформенные приложения. Ключевым аспектом развертывания этих приложений является настройка параметров сервера, в частности хоста и порта по умолчанию. В этом подробном руководстве рассматриваются различные методы настройки этих параметров, гарантирующие, что ваши приложения.NET Core будут работать именно там и так, как вы хотите.
Поймите основы
Приложения.NET по умолчанию настроены для запуска на порту по умолчанию и локальном IP-адресе. Хотя это подходит для ранней разработки, для различных производственных сценариев могут потребоваться определенные конфигурации по самым разным причинам, от протоколов безопасности до требований соответствия.
Изменение хоста и порта
Вы можете использовать один из 4 методов ниже, чтобы изменить хост и порт по умолчанию в основном приложении.NET:
Способ 1. Использование файла launchSettings.json.
Файл launchSettings.json является ориентиром для конфигураций среды разработки. Расположенный в папке «Свойства», он позволяет настраивать параметры среды, такие как разработка, промежуточный этап и производство.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:54321/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "weatherforecast",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"YourProjectName": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Изменив свойство applicationUrl в профиле проекта, вы можете установить собственные URL-адреса.
Способ 2: программная конфигурация
Для большего контроля, особенно в рабочей среде, настройте хост и перенесите его непосредственно в файл Program.cs или Startup.cs, в зависимости от конфигурации вашего проекта.
.NET 5 или новее: В.NET 5 и более поздних версиях появился WebApplicationBuilder, изменивший способ настройки приложений.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Listen(System.Net.IPAddress.Any, 5000); //Listen on all network interfaces on port 5000
});
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
.NET Core 3.1 или более ранней версии:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup().UseUrls("http://0.0.0.0:5000"); //Set custom host and port
Метод 3: переменные среды
Установка переменной среды ASPNETCORE_URLS — это эффективный способ определения URL-адресов, который особенно полезен в средах с докеризацией.
export ASPNETCORE_URLS="http://*:5000"
Эта конфигурация сообщает приложению прослушивать порт 5000 на всех IP-адресах.
Способ 4: использование appsettings.json
Для более постоянного решения, не требующего изменения кода или переменных среды, рассмотрите возможность использования файла appsettings.json. Этот метод позволяет вам устанавливать URL-адреса непосредственно в файле конфигурации вашего приложения.
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8000"
},
"Https": {
"Url": "https://0.0.0.0:8001"
}
}
}
}
В этой конфигурации серверу Kestrel явно предлагается прослушивать протоколы HTTP и HTTPS с настраиваемыми портами и IP-адресами. Этот подход обеспечивает гибкость определения различных конечных точек и легко настраивается без изменения исходного кода приложения.
Заключение
Возможность настраивать параметры хоста и порта по умолчанию в приложениях.NET Core дает разработчикам гибкость для удовлетворения конкретных требований их сред развертывания. Будь то с помощью файла launchSettings.json для разработки, прямой программной настройки, переменных среды или файла appsettings.json для более широких настроек приложения,.NET Core предлагает ряд возможностей, обеспечивающих доступность и безопасность ваших приложений в соответствии с вашими конкретными эксплуатационными потребностями.