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

.NET 6本地WebAPI启用HTTP仍跳转HTTPS问题排查

.NET 6 WebAPI本地HTTP运行配置方案

以下是解决HTTP访问自动跳转HTTPS问题的具体步骤:

1. 调整launchSettings.json配置

项目根目录下的Properties/launchSettings.json是启动配置核心文件,默认会同时启用HTTP和HTTPS端点,且可能默认指向HTTPS地址。修改方式:

  • 打开该文件,找到profiles节点,保留http配置并删除https配置项
  • 将applicationUrl设置为纯HTTP地址(例如http://localhost:5000)
  • 确保launchUrl指向HTTP的Swagger地址(或直接设为swagger,框架会自动匹配当前端口)
    示例修改后的配置片段:
"profiles": {
  "http": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "launchUrl": "swagger",
    "applicationUrl": "http://localhost:5000",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

2. 检查Kestrel端点配置

如果你的Program.cs中手动配置了Kestrel的HTTPS监听,需要移除该配置。比如以下代码中要删除HTTPS监听的行:

builder.WebHost.ConfigureKestrel(serverOptions =>
{
    // 移除或注释掉这行HTTPS配置
    // serverOptions.ListenAnyIP(5001, o => o.UseHttps());
    serverOptions.ListenAnyIP(5000);
});

3. 清理浏览器缓存

部分浏览器会缓存HTTPS重定向规则,即使后端配置修改后,仍会自动跳转。可以:

  • 清除当前站点的缓存数据
  • 使用无痕浏览模式访问HTTP地址

4. 确认HSTS中间件配置

检查Program.cs中是否启用了UseHsts()中间件,该中间件会强制浏览器使用HTTPS。确保仅在非开发环境启用:

if (!app.Environment.IsDevelopment())
{
    app.UseHsts(); // 仅生产环境启用
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:25:35