Как включить http / 2 в Asp.net core 2.2 kestrel (самостоятельно) на сервере 2016 - PullRequest
0 голосов
/ 25 января 2019

Я только что обновил свой проект с ядра 2.1 asp.net до 2.2 (основной причиной была поддержка Brotli- и http / 2).
Я смог перестроить, развернуть и запустить приложение (консольное приложение с собственным хостом).
Приложение работает на сервере Windows 2016 с включенным https (через общедоступный сертификат).
Сервер поддерживает TLS 1.2 (проверено через Интернет с помощью инструмента).
К сожалению, http / 2 не работает, поэтому сжатие Brotli, похоже, работает.
Мой клиент также поддерживает http / 2 - если я загляну на свой веб-сайт с помощью GC, я вижу, что некоторые из моих файлов, на которые есть ссылки, являются серверами через http / 2, но не моим контентом.

Согласно найденной информации в сети:

  • Моя конфигурация должна соответствовать предварительным требованиям для http / 2
  • Asp.net core 2.2 должен использовать http / 2 автоматически (без каких-либо изменений в коде или настройках) по умолчанию и автоматически использовать http / 1.1, если клиент не поддерживает http / 2

Что мне здесь не хватает ...?

1 Ответ

0 голосов
/ 25 января 2019

Я сам нашел решение ...
Я использую appsettings.json для настройки пустельги на сервере:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
,
    "Kestrel": {
        "EndPoints": {
            "Http": {
                "Url": "http://localhost:5000"
            },
            "HttpsInlineCertFile": {
                "Url": "https://nnn.nnn.n.n:nnnnn",
                "Protocols": "Http1AndHttp2",  
                "Certificate": {
                    "Path": "./certificate.pfx",
                    "Password": "Password",
                    "AllowInvalid": "true"
                }
            }
        }
    }
}

Мне пришлось добавить запись: «Протоколы»: «Http1AndHttp2»,

Теперь, похоже, работает (GC показывает протоколу «h2»).
Но результат не такой, как ожидалось (кажется,быть немного медленнее сейчас ..).
Однако, это было решением для моей первоначальной публикации.
Надеюсь, это кому-нибудь поможет ...

...