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

Visual Studio for Mac中EF Core 5连接Docker部署的SQL Server报错如何解决?

问题根源

你当前遇到的报错核心有两个诱因:

  • 连接字符串使用了Integrated Security=True,该配置仅支持Windows系统下的域集成身份验证,macOS环境、Docker部署的Linux版SQL Server均不支持该验证模式
  • 缺少自签证书信任配置,Docker部署的SQL Server默认使用自签名SSL证书,macOS客户端默认会拦截不受信的证书连接

可行解决方案

按以下步骤调整即可:

  1. 替换连接字符串
    关闭集成验证,改用SQL Server身份验证(即你部署Docker容器时设置的SA账号密码),同时添加证书信任配置,参考格式如下:
    optionsBuilder.UseSqlServer("Data Source=localhost;Initial Catalog=Boletus;User ID=sa;Password=你部署Docker时设置的SA密码;TrustServerCertificate=True;Connect Timeout=30")
    
    如果你映射的SQL Server端口不是默认1433,需要在地址后指定端口,比如映射的对外端口是1434,则调整为Data Source=localhost,1434
  2. 验证基础连接可用性
    可以先通过VS Code、Azure Data Studio等工具,使用SA账号密码尝试连接目标实例,确认账号密码正确、实例可正常访问
  3. 排查依赖包版本冲突
    检查项目中安装的Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer、Microsoft.Data.SqlClient包版本是否一致,避免跨版本调用引发的异常,版本对齐后清理NuGet缓存重新还原即可
  4. 可选:底层连接测试
    如果你调整后EF Core仍报错,可以先编写极简的底层连接测试代码,排除EF Core配置问题:
    using Microsoft.Data.SqlClient;
    
    // 测试代码
    using var conn = new SqlConnection("你调整后的连接字符串");
    conn.Open();
    Console.WriteLine("连接正常");
    
    若该测试运行正常,则问题出在EF Core的其他配置项,否则优先排查连接字符串、网络、账号权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:15:07