首页 > 解决方案 > 适用于 Linux HTTP 2 的 Azure 应用服务无法正常工作

问题描述

我有一个在 Azure 上运行 .NET 5 的 Linux 应用服务,在配置部分设置了 HTTP 2

启用 HTTP 2

但是,仍然使用 HTTP 1.1 提供流量。我的理解是 HTTP 2 需要 SSL,我目前正在使用 https://*.azurewebsites.com 域来访问它。我认为 azure 会在那时终止 SSL,并且我的应用程序将获得常规的 http 连接。难道这就是它仍然使用 http 1.1 服务的原因吗?我正在使用 ASP.NET Core,如果我在本地运行该站点,它将作为 HTTP 2 提供。

还有什么我想念的吗?

编辑:我在配置页面上启用/禁用了“允许客户端证书”复选框,并开始在 HTTP 2 上提供服务。我猜这迫使 Azure 端进行某种刷新?它使用 http 2 服务了一段时间,但现在又回到了 http 1.1。

标签: azureasp.net-coreazure-web-app-service

解决方案


更新

在 appsettings.json 中添加以下代码,然后尝试一下。

"Kestrel": {
    "EndpointDefaults": {
        "Protocols": "Http2"
    }
},

尝试使用其他浏览器,例如 chrome 或 firefox。或者打开一个新的 InPrivate 窗口,如下所示。

原因: 应该是浏览器缓存造成的。清除缓存也可以解决问题。

在此处输入图像描述


推荐阅读