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

执行update-database命令时遭遇SSL证书信任问题求助

解决SQL Server连接SSL证书信任问题

我的数据库连接字符串如下:

Server=DESKTOP-4P98T57;Encrypt =True; Integrated Security = True;Trusted_Connection=SSPI;Initial Catalog=namedatabase;TrustServerCertificate=True; Persist Security Info=true;User ID=sa;Password=123456;MultipleActiveResultSets=true;

执行update-database命令时出现错误:

已成功与服务器建立连接,但在登录过程中发生错误。(提供程序: SSL 提供程序, 错误: 0 - 证书链由不受信任的机构颁发。)

已尝试设置TrustServerCertificate=true、调整Encrypt值、开启SQL Server的Trust Server Certificate选项,使用Visual Studio 2022和.NET 7,以下是可行的解决步骤:

  • 移除冲突的认证配置:连接字符串中同时存在Windows认证(Integrated Security=True/Trusted_Connection=SSPI)和SQL Server认证(User ID=sa;Password=123456),两者互斥,需删除其中一组。例如使用SQL认证的话,连接字符串改为:

    Server=DESKTOP-4P98T57;Encrypt=True;Initial Catalog=namedatabase;TrustServerCertificate=True;Persist Security Info=true;User ID=sa;Password=123456;MultipleActiveResultSets=true;
    
  • 在EF Core中显式配置信任证书:在DbContext的OnConfiguring方法中强制开启信任服务器证书,避免配置被覆盖:

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(YourConnectionString, options =>
        {
            options.TrustServerCertificate(true);
        });
    }
    
  • 验证SQL Server的SSL设置:打开SQL Server配置管理器,找到目标实例:

    1. 进入“SQL Server网络配置” -> “[实例名]的协议”,右键点击“TCP/IP”选择属性;
    2. 在“证书”选项卡确认是否指定了证书,若使用自签名证书需确保已选中;
    3. 在“标志”选项卡确认“Trust Server Certificate”已设置为“是”。
  • 清理数据库连接池:重启Visual Studio,或者在调试代码中添加SqlConnection.ClearAllPools();清理旧连接缓存,避免残留配置影响。

  • 更新SQL Client包:通过NuGet包管理器更新Microsoft.Data.SqlClient或System.Data.SqlClient到最新版本,旧版本可能存在参数解析问题。

内容的提问来源于stack exchange,提问作者samane farhadi rad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 09:55:08