如何在服务器 2016 上的 Asp.net 核心 2.2 红隼(自托管)中启用 http/2

How to enable http/2 in Asp.net core 2.2 kestrel (self hosted) on server 2016

我刚刚将我的项目从 asp.net 核心 2.1 更新到 2.2(主要原因是 Brotli- 和 http/2 支持)。
我能够重建、部署和启动应用程序(自托管控制台应用程序)。
该应用 运行 在 Windows 2016 服务器上并启用了 https(通过 public 证书)。
服务器支持TLS 1.2(用工具在网上查过)。
不幸的是 http/2 不起作用,而 Brotli 压缩似乎起作用了。
我的客户也支持 http/2 - 如果我用 GC 查看我的网站,我可以看到,我的一些引用文件是服务器 http/2,但不是我的内容。

根据网上查到的资料:

我在这里想念什么...?

刚刚自己找到了解决方案...
我使用 appsettings.json 在服务器上配置 kestrel:

{
  "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"
                }
            }
        }
    }
}

我必须添加条目: "Protocols": "Http1AndHttp2",

现在,它似乎可以工作了(GC 现在向协议显示 "h2")。
但是结果却不尽如人意(现在好像有点慢了..)
然而,这是我最初发布的解决方案。
希望这对某人有所帮助...