降级.NET SDK至7后本地Swagger UI无法访问问题求助
解决.NET 7下Swagger UI的ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY错误
以下是针对该问题的具体解决步骤:
重置本地HTTPS开发证书
卸载重装.NET SDK可能导致本地HTTPS证书失效或未正确信任。以管理员身份打开命令提示符,执行以下命令:dotnet dev-certs https --clean dotnet dev-certs https --trust执行完成后重启应用,重新访问Swagger UI。
调整Kestrel的HTTP协议配置
若项目强制启用HTTP/2但本地环境不匹配安全套件要求,可修改Kestrel配置,允许同时使用HTTP/1和HTTP/2:
在Program.cs中添加如下配置:builder.WebHost.ConfigureKestrel(options => { options.ListenAnyIP(8080, listenOptions => { listenOptions.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http1AndHttp2; listenOptions.UseHttps(); }); });或在
appsettings.json中配置:"Kestrel": { "Endpoints": { "Https": { "Url": "https://localhost:8080", "Protocols": "Http1AndHttp2" } } }清除浏览器缓存与SSL状态
浏览器缓存的旧SSL会话或HSTS记录可能导致请求失败:- 清除浏览器的缓存数据(包括Cookie和缓存文件);
- 以Chrome为例,可访问
chrome://net-internals/#hsts,删除localhost的HSTS记录; - 尝试用隐私模式访问Swagger UI,排除缓存干扰。
验证Swagger配置完整性
确认项目中Swagger的启用代码未被误修改:// 注册Swagger服务 builder.Services.AddSwaggerGen(); // 启用Swagger中间件 app.UseSwagger(); app.UseSwaggerUI();同时检查
launchSettings.json中ASPNETCORE_ENVIRONMENT是否设置为Development,避免Swagger因环境限制未启用。
内容的提问来源于stack exchange,提问作者Tal Dayan
相关产品推荐
相关产品推荐

