You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 8+HttpSys如何禁用HTTP/2强制使用HTTP/1.1?

解决方案:ASP.NET Core 8 + HttpSys 强制使用 HTTP/1.1

可以通过应用级配置强制ASP.NET Core + HttpSys仅使用HTTP/1.1,无需修改系统注册表或全局设置,具体实现如下:

1. 配置HttpSys仅支持HTTP/1.1

在Program.cs中,通过UseHttpSys方法的选项参数,显式指定支持的HTTP协议版本为HttpProtocols.Http1:

var builder = WebApplication.CreateBuilder(args);

// 配置HttpSys服务器,限制仅使用HTTP/1.1
builder.WebHost.UseHttpSys(options =>
{
    options.Protocols = HttpProtocols.Http1;
});

// 注册其他服务(如MVC、认证等)
builder.Services.AddControllers();

var app = builder.Build();

// 配置中间件管道
app.UseAuthorization();
app.MapControllers();

app.Run();

2. .NET 4.8 自动降级为HTTP/1.1的原理

.NET Framework 4.8的ASP.NET + OWIN集成未实现HTTP/2支持,因此在启动时不会向HttpSys注册HTTP/2协议的支持能力。HttpSys检测到应用仅支持HTTP/1.1后,自然会使用该版本进行通信,无需额外配置。

3. 方案说明

  • 该配置是应用级专属设置,仅对当前ASP.NET Core应用生效,不会影响服务器上的其他应用或系统全局配置。
  • 通过HttpProtocols.Http1限制协议后,HttpSys将拒绝HTTP/2连接请求,强制使用HTTP/1.1,从而恢复客户端证书协商的支持能力。

内容的提问来源于stack exchange,提问作者rlagus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 00:04:55