🚀 Как изменить хост/порт по умолчанию в приложениях .NET Core

by itisgood

В быстро развивающемся ландшафте веб-разработки .NET Core выделяется своей способностью эффективно создавать современные кроссплатформенные приложения.

Основополагающим аспектом развертывания таких приложений является настройка параметров сервера, в частности хоста и порта по умолчанию.

В этом подробном руководстве рассматриваются различные методы настройки этих параметров, благодаря которым ваши приложения .NET Core будут работать именно там и так, как вы задумали.

Понимание основ

Приложения .NET по умолчанию настроены на запуск через заранее определенный порт и локальный IP-адрес.

Эти настройки подходят для начальных этапов разработки, но в производственных сценариях могут потребоваться особые конфигурации по разным причинам – от протоколов безопасности до требований соответствия.

Изменение хоста и порта

Чтобы изменить хост и порт по умолчанию в приложении .NET core, можно воспользоваться одним из 4 приведенных ниже способов:

Метод 1: Использование файла launchSettings.json

Файл launchSettings.json – это ваш помощник в настройке среды разработки.

Расположенный в папке Properties, он позволяет задать настройки для конкретных сред, таких как Development, Staging и Production.

{
  "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 Core 3.1 или более ранняя версия:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup()
        .UseUrls("http://0.0.0.0:5000"); // Set custom host and portY
.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();

Метод 3: Переменные окружения

Установка переменной окружения ASPNETCORE_URLS – это эффективный способ определения URL-адресов, особенно полезный в средах Dockerized.
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 предлагает ряд возможностей для обеспечения доступности и безопасности ваших приложений, отвечающих вашим уникальным операционным потребностям.
см. также:

You may also like

Leave a Comment