ASP.NET Core 2.1 + Kestrel (как отключить HTTPS)
таким образом, он появляется с появлением ASP.NET ядро 2.1, Kestrel теперь автоматически создает конечную точку HTTPS вдоль стороны HTTP, а шаблоны проектов по умолчанию настроены для перенаправления с HTTP на HTTPS (что достаточно легко отменить).
однако мой вопрос... как я могу полностью отключить HTTPS для своего проекта. Я прочитал документы и играл с различными настройками конфигурации для HTTPS, но ничто из того, что я делаю, не позволяет мне отключить его и просто запустить HTTP проект.
Я сумасшедший или просто что-то пропустил. Я ожидал, что это будет очень легко сделать.
4 ответов
оказывается, правильный способ достичь того, что я хотел сделать, - это специально настроить Kestrel.UseKestrel () и просто укажите один адрес, например:
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => {
options.Listen(IPAddress.Loopback, 5080); //HTTP port
})
.UseStartup<Startup>();
in affect переопределяет настройку по умолчанию и отображает это предупреждение при запуске Kestel:
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Overriding address(es) 'https://localhost:5001, http://localhost:5000'. Binding to endpoints defined in UseKestrel() instead.
Если указан второй адрес, предполагается, что адрес должен быть защищен встроенным сертификатом разработчика, как таковой:
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => {
options.Listen(IPAddress.Loopback, 5080); //HTTP port
options.Listen(IPAddress.Loopback, 5443); //HTTPS port
})
.UseStartup<Startup>();
вы можете, конечно, конкретно защитите свой SSL-адрес, как описано здесь:
что необходимо для производства установок.
Если вы используете Visual Studio 2017 Тогда
- перейти к свойствам проекта
- снимите флажок SSL Копировать Url-адрес приложения в (Web/Debugger)
- перейти к вводу браузера пуск
в файле Properties/launchSettings.json
вашего проекта, посмотрите ключа applicationUrl
. Вы найдете что-то вроде:
...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...
удалить https
конечная точка, и все готово.
редактировать
как отметил @Xorcist файл launchSettings.json
не опубликовано. Таким образом, решение выше будет работать только в среде разработки. Чтобы отключить https и, в общем, настроить URL-адреса, которые вы хотите слушать, как в производстве, так и в разработке, вы также можете одно из следующих:
использовать
--urls
параметрыdotnet run
, будет иметь тот же эффект, какapplicationUrl
наlaunchSettings.json
. Например:dotnet run --urls=http://0.0.0.0:5000,https://0.0.0.0:5001
. Опять же, удалите тот, который вы не хотите использовать.то же самое может быть достигнуто с
ASPNETCORE_URLS
переменные среды.- как указано в ответе @Konstantin to этот вопрос, в ASP Net Core 2.1 вы также можете настроить конечные точки Kestrel в
appsettings.json
(кажется, это невозможно сделать в 2.0). - наконец, то же самое может быть достигнуто с
useUrls
метод расширенияWebHost.CreateDefaultBuilder(args).UseUrls("http://0.0.0.0:5000")
. Я предпочитаю другое решение, потому что эти жесткие коды вы конечные точки приложения и не могут быть изменены без перекомпиляции приложения.
все возможные варианты подробно описаны в разделе Microsoft Docs на этом.