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

.NET 4.7升8.0后System.Data.SqlClient正常但Microsoft.Data.SqlClient连接失败

问题1:为何System.Data.SqlClient可成功连接,而Microsoft.Data.SqlClient不行?

两者的核心差异在于默认的SSL证书验证行为不同:

  • System.Data.SqlClient(.NET Framework版本)出于兼容性考量,默认不会强制验证SQL Server的SSL证书链。即使服务器使用自签名证书或未受信任CA颁发的证书,客户端也会跳过验证,正常建立连接。
  • Microsoft.Data.SqlClient作为官方主推的现代化SQL客户端库,为提升安全性,在配合.NET 8等新版本时默认启用了严格的SSL证书链验证。当服务器证书未被客户端信任时,就会触发登录阶段的SSL错误。

问题2:如何修改连接字符串解决问题?

只需在连接字符串中添加TrustServerCertificate=True参数,修改后的连接字符串示例如下:

Data Source=MyDbServer;Initial Catalog=MyDatabase;Application Name=MyApplication;Pooling='true';Connection Lifetime=500;Integrated Security=SSPI;Persist Security Info=True;TrustServerCertificate=True;

该参数会让客户端信任服务器返回的证书,跳过证书链的有效性验证,从而绕过当前的SSL信任问题,且无需修改数据库服务器或数据库本身。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:17:03