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

运行中项目突然报Microsoft.Data.SqlClient证书链不受信任错误如何解决

问题根因

突然报错的原因

你遇到的问题是Microsoft.Data.SqlClient类库默认配置变更叠加系统安全补丁调整共同导致的,和你的业务代码无关:

  • 安装.NET 6时会自动更新系统全局的Microsoft.Data.SqlClient版本到3.x及以上,这个版本起官方将连接字符串的Encrypt参数默认值从false修改为true,默认强制要求SQL连接走SSL加密
  • 你安装的周二安全补丁收紧了Windows系统对SSL证书的校验逻辑,此前系统对本地SQL Server的自签名证书会默认放行,补丁后校验规则正式生效,就触发了证书不被信任的报错

xUnit正常、WebForms报错的原因

两个场景的运行身份对应的证书信任存储不同:

  • xUnit测试以当前登录Windows的用户身份运行,读取的是当前用户的证书信任列表,如果你此前用该账户登录SSMS连接过本地SQL Server,系统会自动把SQL的自签名证书加入当前用户的信任列表,所以校验可以通过
  • IIS站点以应用程序池的内置身份运行,读取的是本地计算机的证书信任列表,SQL Server的自签名证书默认不在这个列表的信任根范围内,因此校验失败报错

解决方案

你可以根据场景选择任意一种:

  • 同机部署/内部测试场景快速修复:在数据库连接字符串末尾追加Encrypt=True;TrustServerCertificate=True,允许加密连接同时跳过证书权威校验,改完即可生效
  • 生产环境合规修复:为SQL Server申请一张受服务器信任的正式SSL证书,将证书导入到本地计算机的「受信任的根证书颁发机构」存储中,再配置SQL Server绑定该证书用于连接加密,无需修改代码和连接字符串即可恢复
  • 兼容旧版本逻辑:如果不需要连接加密,直接在连接字符串中追加Encrypt=False,恢复旧版SqlClient的默认行为即可解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:54:02