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

本地IIS部署ASP.NET Core 6.0 Web API遇HTTPS连接失败求助

解决ASP.NET Core 6.0 Web API在IIS上的HTTPS绑定问题

你的问题核心是IIS作为反向代理处理HTTPS时,ASP.NET Core应用未能正确识别转发的HTTPS请求,导致UseHsts()和UseHttpsRedirection()中间件触发连接失败。以下是完整的本地HTTPS绑定配置方案:

1. 为IIS站点配置HTTPS证书

  • 打开IIS管理器,定位到你的Web API站点,右键选择编辑绑定
  • 点击添加,绑定类型选择HTTPS,端口默认填443(如果端口被占用,可改用4430这类非标准HTTPS端口)
  • 在SSL证书下拉框中,选择一个可用证书:
    • 没有证书的话,可在IIS服务器节点的服务器证书选项中,点击创建自签名证书,命名后选择Web主机存储位置,生成后即可在绑定中选择

2. 配置ASP.NET Core应用识别IIS转发的HTTPS请求

在Program.cs中添加转发头中间件,并确保其在UseHsts()和UseHttpsRedirection()之前执行:

var builder = WebApplication.CreateBuilder(args);

// 配置IIS整合选项
builder.Services.Configure<IISOptions>(options =>
{
    options.ForwardClientCertificate = false;
});

// 注册其他服务(如Controllers等)
builder.Services.AddControllers();

var app = builder.Build();

// 启用转发头,让应用识别IIS传递的HTTPS请求标识
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

// 恢复原本的HTTPS相关中间件
app.UseHsts();
app.UseHttpsRedirection();

// 其他中间件配置
app.UseAuthorization();
app.MapControllers();

app.Run();

3. 配置应用的HTTPS重定向参数

在appsettings.json中明确HTTPS端口,确保重定向逻辑正确:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "HttpsRedirection": {
    "HttpsPort": 443 // 对应IIS绑定的HTTPS端口
  }
}

4. 验证与测试

  • 重新发布Web API到本地文件夹,刷新IIS站点
  • 直接访问https://localhost(或你设置的端口),确认API正常响应,无连接拒绝错误

额外排查点

  • 检查IIS站点的模块列表,确认存在AspNetCoreModuleV2(.NET Hosting Bundle安装成功的标志)
  • 若端口冲突,可在IIS绑定中更换HTTPS端口,同步修改appsettings.json中的HttpsPort值
  • 查看Windows事件查看器中的ASP.NET Core日志,获取更详细的错误信息定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:23:20