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

Docker Compose部署SQL Server的连接字符串配置及.NET连接问题排查

问题分析与解决方案

核心网络问题:容器间通信不能用localhost

docker-compose会自动为所有服务创建专属桥接网络,容器之间通过服务名或hostname直接通信,不需要依赖宿主机的端口映射。你的连接字符串里用localhost,1455,在mtgmvc容器内部,localhost指向容器自身而非宿主机,因此无法连接到SQL Server容器。

连接字符串修正

将appsettings.json中的DefaultConnection修改为以下两种形式之一:

方案1:使用服务名(推荐)

"DefaultConnection": "Data Source=mssql,1433;Initial Catalog=MTGCards;User ID=sa;Password=Admin@123;Integrated Security=False"

方案2:使用hostname

"DefaultConnection": "Data Source=mssql-db,1433;Initial Catalog=MTGCards;User ID=sa;Password=Admin@123;Integrated Security=False"

额外注意事项

  • 移除Integrated Security=True:容器环境不支持Windows集成认证,该参数会导致认证失败,需设置为False或直接删除。
  • 确认目标数据库存在:首次部署时SQL Server容器不会自动创建MTGCards数据库,需手动创建或在.NET应用中添加数据库初始化逻辑(比如EF Core迁移)。
  • 验证容器连通性:可进入mtgmvc容器执行ping mssql,检查是否能正常解析并连通SQL Server容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:15:07