Docker下ASP.NET 5应用连接SQL Server 2019提示服务名未知错误如何解决
可排查的配置项清单
- SQL Server Browser服务与端口映射检查
你报错的核心原因首先是无法连接SQL Server Browser服务,该服务依赖UDP 1434端口实现实例名解析:- 确认SQL Server所在容器是否映射了UDP 1434端口,仅映射TCP 1433端口无法支持实例名寻址
- 确认SQL Server实例的Browser服务处于启动状态
- 若不想依赖Browser服务,可直接在连接字符串中指定端口,跳过实例名解析步骤,写法为
Server=IP地址,端口号,不要加\\实例名后缀
- 连接字符串配置错误修正
你当前的连接字符串存在两处明显冲突:Integrated Security=True与User Id/Password配置互斥:集成身份验证依赖Windows身份上下文,Docker容器内的ASP.NET 5应用不存在宿主机的Windows身份信息,直接删除该配置项即可- 缺少自签证书信任配置:Docker部署的SQL Server默认使用自签证书,需追加
TrustServerCertificate=True避免证书校验失败
修正后的参考配置如下:
"connectionStrings": { "DefaultConnection": "Server=SQL服务IP/容器名,1433;Initial Catalog=Rocky;User Id=myId;Password=myPsw;TrustServerCertificate=True;" } - Docker网络配置检查
你报错中的Name or service not known属于DNS解析失败:- 确认SQL Server容器与ASP.NET 5容器加入了同一个自定义Docker网桥,默认的bridge网桥不支持容器名DNS解析
- 若使用宿主机IP连接SQL Server,确认容器可以正常解析宿主机IP,没有防火墙或网络策略拦截
- SQL Server基础配置检查
- 确认SQL Server配置管理器中TCP/IP协议已启用,且固定了监听端口(不要使用动态端口)
- 确认登录账号
myId拥有Rocky数据库的访问权限(该问题优先级低于连接故障,可待连通性解决后验证)
内容的提问来源于stack exchange,提问作者user3149207
相关产品推荐
相关产品推荐

