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

.NET 6升级至.NET 7后数据库连接失败问题求助

.NET 7升级后数据库连接SSL证书信任错误问题

问题重现

将应用从.NET 6升级到.NET 7后,执行数据库连接代码时出现错误:

连接字符串:

"ConnectionStrings": {
    "DefaultConnection": "Server=.\\MYINSTANCE;Database=MyDatabase;User Id=MyUser; Password=MyPassoword;MultipleActiveResultSets=True;"
  }

连接代码:

var connectionString = _configuration.GetConnectionString("DefaultConnection");
var connection = new SqlConnection(connectionString);
connection.Open();

错误信息:

Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.)
---> System.ComponentModel.Win32Exception (0x80090325): The certificate chain was issued by an authority that is not trusted.

原因

.NET 7对Microsoft.Data.SqlClient的默认配置做了变更:默认启用SSL加密(Encrypt=True),而.NET 6及更早版本的默认值为Encrypt=False。如果你的SQL Server使用自签名证书、内部CA签发但未被客户端信任的证书,就会触发证书链信任验证失败的错误。

解决办法

1. 临时关闭SSL加密(开发环境适用)

在连接字符串中添加Encrypt=False参数:

"DefaultConnection": "Server=.\\MYINSTANCE;Database=MyDatabase;User Id=MyUser; Password=MyPassoword;MultipleActiveResultSets=True;Encrypt=False;"

2. 信任SQL Server的证书(生产环境推荐)

将SQL Server使用的证书导入到客户端机器的受信任根证书颁发机构存储:

  • 从SQL Server服务器导出证书(仅需公钥)
  • 在客户端打开certmgr.msc,找到「受信任的根证书颁发机构」→「证书」,右键导入导出的证书

3. 跳过证书验证(仅测试/开发环境)

在连接字符串中添加TrustServerCertificate=True参数,该参数会绕过证书链信任验证,但存在安全风险,不建议生产环境使用:

"DefaultConnection": "Server=.\\MYINSTANCE;Database=MyDatabase;User Id=MyUser; Password=MyPassoword;MultipleActiveResultSets=True;TrustServerCertificate=True;"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:00:00