ASP.NET Core 7.0 — настройка URL-адреса приложения Kestrel

.net На данный момент это код, который у меня есть:

      var builder = WebApplication.CreateBuilder(args);

builder.Host.UseWindowsService(options => {
  options.ServiceName = "My Server";
}).ConfigureServices(services => {
  services.AddHostedService<WindowsBackgroundService>();
});
...

и

      "profiles": {
    "MyProj": {
        "applicationUrl": "http://127.0.0.1:5000;",

Как вместо этого установить (с портом) в конфигурации строителя?

Я видел разные ответы, но не уверен, как поступить с ASP.NET Core 7.0, здесь говорится об использовании:

      builder.WebHost.ConfigureKestrel(serverOptions =>
{
    serverOptions.ConfigureEndpointDefaults(listenOptions =>
    {
        // ...
    });
});

но я не уверен, как установитьapplicationUrlи еслиWebHostэто то, что мне нужно (поскольку я использую службу Windows, как указано выше).

2 ответа

Вполне допустимо использовать WebApplicationBuilder.WebHost в сочетании с функциональностью службы Windows, посколькуWebHostвсе еще работает при использованииWebApplicationBuilder.

Из-за этого я думаю, что самый простой способ установить URL-адрес для вашего сценария — использовать:

      builder.WebHost.UseUrls("http://127.0.0.1:5000");

Для этого не требуется настраивать что-либо конкретное для Kestrel, но конфигурация все же сводится к Kestrel.


Чтобы настроить Kestrel напрямую, вы можете использоватьConfigureKestrel, как предложено в вашем вопросе. Чтобы задать URL таким образом, используйтеListenметод:

      builder.WebHost.ConfigureKestrel(kestrelServerOptions =>
{
    kestrelServerOptions.Listen(IPAddress.Loopback, 5001);
});

Существует несколько вариантов настройки URL-адреса, таких как настройка HTTPS, использование DnsEndPoint и т. д. Этот подход обеспечивает гораздо большую гибкость, но если вы просто хотите установить URL-адрес программно, я бы по-прежнему рекомендовалUseUrlsподход.

Толькоrun the following command in cmd начальный URL-адрес в ядре aspnet

      setx ASPNETCORE_URLS "http://127.0.0.1:5001;https://127.0.0.1:5002"
Другие вопросы по тегам