ASP. NET Ядро: прослушивание как `https://mydomain`, так и `https://www.mydomain` с помощью Kestrel - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь настроить ASP. NET Core веб-сервер с помощью Kestrel. Я хочу, чтобы Kestrel прослушивал все запросы, исходящие как от https://www.example.com, так и от https://example.com, но я не могу понять, как это сделать.

В настоящее время я использую следующий код для настройки Kestrel в начале моей программы:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<AppStartup>();
            webBuilder.UseUrls(
                "https://example.com:443",
                "http://example.com:80",
                //"https://www.example.com:443",        // This obviously doesn't work with all enabled, 
                //"http://www.example.com:80",          // as it tries to double-bind the ports...
            );
            // Workaround for HTTP2 bug in .NET Core 3.1 and Windows 8.1 / Server 2012 R2
            webBuilder.UseKestrel(options =>
            options.ConfigureEndpointDefaults(defaults =>
                defaults.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http1
            )
        );
    });

Я также пробовал сделать следующее в моем AppStartup, что я действительно считал решением, отключив этот ресурс.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...
    app.UseRewriter(opt => opt.AddRedirectToWwwPermanent());
    ...
}

Но, похоже, это не работает. Как правильно это сделать с помощью Kestrel? Некоторые ожидаемые вопросы:

Нет, я не использую Kestrel за IIS и не собираюсь этого делать (не совсем уверен, почему я продолжаю видеть, как люди делают это? Должен ли я это делать? Что я могу получить от это?)

Большое спасибо за чтение!

1 Ответ

0 голосов
/ 17 июня 2020

По умолчанию ASP. NET Core привязывается к:

Укажите URL-адреса, используя переменную среды:

  • ASPNETCORE_URLS.
  • - команда urls -строчный аргумент.
  • URL-адрес ключа конфигурации хоста.
  • Метод расширения UseUrls.

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#endpoint -конфигурация

В launchsettings. json у вас, вероятно, есть "applicationUrl": "https://localhost:5001;http://localhost:5000", как это делается во время отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...