【问题标题】:How to enable http/2 in Asp.net core 2.2 kestrel (self hosted) on server 2016如何在服务器 2016 上的 Asp.net core 2.2 kestrel(自托管)中启用 http/2
【发布时间】:2019-01-25 23:38:03
【问题描述】:

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

根据网上查到的资料:

  • 我的配置应该满足 http/2 的先决条件
  • 如果客户端不支持 http /2

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

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc http2


    【解决方案1】:

    刚刚自己找到了解决方案...
    我使用 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”)。
    但结果并不如预期(现在似乎有点慢..)。
    但是,这是我最初发布的解决方案。
    希望这对某人有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-07
      • 2020-07-05
      • 2017-07-19
      • 2019-04-19
      • 2019-08-09
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多