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

本地调试.NET MVC应用正常,Docker容器调用遇SSL及连接问题

解决Docker Host网络容器调用Windows主机MVC调试接口的SSL与主机名问题

问题背景

  • Windows主机通过VS Code按F5调试MVC应用时,本地访问https://localhost:1234/health/status正常,无需手动配置证书
  • 采用Host网络模式的Docker容器调用同一接口时,先触发SSL证书错误;使用curl -k/--insecure跳过证书校验后,返回Bad Request - Invalid Hostname
  • 排查发现dotnet dev-certs无有效证书,调整IIS Express的netsh URL预留后,容器调用localhost出现连接拒绝

解决步骤

  1. 修改launchsettings.json的applicationUrl
    将仅绑定localhost的地址,新增主机IPv4地址绑定(保留localhost方便本地调试),示例配置:
    "applicationUrl": "https://localhost:1234;https://192.168.1.100:1234"
    
  2. 更新applicationhost.config的绑定配置
    找到项目.vs/{项目名称}/config目录下的applicationhost.config,在bindings节点添加主机IPv4的绑定项:
    <binding protocol="https" bindingInformation="*:1234:192.168.1.100" />
    
  3. 以管理员身份启动VS Code
    确保VS Code拥有权限修改URL预留及证书相关配置
  4. 容器内调用接口
    使用主机IPv4地址而非localhost,搭配-k选项跳过证书校验,执行命令:
    curl -k https://192.168.1.100:1234/health/status
    

关键原因

  • Host网络模式下,容器的localhost指向自身而非主机,必须使用主机实际IPv4地址访问
  • 原配置仅绑定localhost,非localhost请求会触发IIS Express的主机名校验,导致Invalid Hostname错误
  • 管理员权限确保VS Code能正确配置IIS Express的地址绑定及相关系统权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:43:09