如何使用 Microsoft.Data.SqlClient Version=4.0.0 修复“目标主体名称不正确”错误

Ana*_*and 9 sql-server sqlclient

升级后Microsoft.Data.SqlClient Version=4.0.0出现错误:

已成功与服务器建立连接,但登录过程中出现错误。(提供程序:SSL 提供程序,错误:0 - 目标主体名称不正确。

我查找了重大更改https://github.com/dotnet/SqlClient/pull/1210,然后Encrypt=False在连接字符串中进行设置,但是错误仍然相同。

仅通过恢复到错误才消失2.0.1

有人可以建议如何解决该问题吗4.0.0

Abr*_*ham 0

AlwaysLearning 在评论中给出了答案:

目标主体名称不正确表示您在服务器中使用的名称或 IP 地址=...;连接字符串的一部分与 SQL Server 提供的 X.509 证书中的 CommonName 或 subjectAltName 不匹配,这并不奇怪,因为默认情况下,SQL Server 安装时仅使用当前主机名使用自签名证书。如果包含 TrustServerCertificate=False; 错误会消失吗?在(所有)连接字符串中?

哎呀,替换TrustServerCertificate=False;TrustServerCertificate=True;...它意味着信任所提供的任何证书,无论 CommonName、SubjectAltName(s) 和证书链如何。

所以答案是

TrustServerCertificate=True
Run Code Online (Sandbox Code Playgroud)

*添加此内容是为了准确表明问题已得到解答。社区 Wiki 不生成积分,因此这并不是试图窃取积分。AlwaysLearning 应该发布答案以获得积分。