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

两个Docker部署的.NET Core本地应用通信报Cannot assign requested address错误

问题根因

这个错误本质是容器内部的localhost指向容器自身的网络命名空间,而非宿主机网络,仅在当前设备复现通常和该设备的Docker网络配置、端口映射规则、项目启动参数的本地差异有关。

解决方案
  • 先校验API容器的端口映射状态
    在问题设备终端执行docker ps,查看API容器的PORTS列,确认宿主机映射端口未被其他进程占用,可执行netstat -ano | findstr "映射端口号"(Windows)或lsof -i :映射端口号(macOS/Linux)排查端口占用。
  • 替换API调用地址
    不要在UI项目的调用地址中使用localhost,可选两种适配方案:
    • 用宿主机局域网IP代替localhost,例如宿主机IP为192.168.1.10、API映射到宿主机的端口为5000,则调用地址改为http://192.168.1.10:5000/接口路径
    • Windows/macOS的Docker Desktop环境可直接用内置域名host.docker.internal代替宿主机IP,Linux原生Docker需在UI容器启动参数中添加--add-host=host.docker.internal:host-gateway才可使用该域名
  • 校验Docker网络配置
    执行docker network inspect bridge确认两个容器都接入了Docker默认的bridge网络,可直接用API容器名称+容器内部端口调用,例如API容器名为api-demo、内部暴露端口为80,则调用地址改为http://api-demo:80/接口路径
  • 核对Visual Studio调试配置
    分别打开两个项目的属性页,进入「调试」选项卡,核对Docker启动参数、端口映射配置和其他正常设备的配置是否一致,排除本地修改的异常配置。
验证排查步骤
  • 修改调用地址后重新构建镜像启动容器,测试接口调用是否正常
  • 若仍报错,执行docker exec -it UI容器名 bash进入UI容器内部,执行curl 待调用的API地址验证连通性,逐步定位网络故障点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:54:03