如何修复 EF Core 迁移“证书链由不受信任的机构颁发”

Dem*_*ave 10 entity-framework entity-framework-core entity-framework-migrations

连接字符串:

Data Source=<server>,<port>;Initial Catalog=<database>;User Id=<username>;
Password=<password>?;MultipleActiveResultSets=true;Encrypt=True;
TrustServerCertificate=false;Integrated Security=false;Trusted_Connection=true;
Connection Timeout=30;
Run Code Online (Sandbox Code Playgroud)

我的连接字符串包含:

TrustServerCertificate=false
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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

当我有一个连接字符串时:

TrustServerCertificate=true
Run Code Online (Sandbox Code Playgroud)

我得到:

用户“<用户名>”登录失败。// <-- 删除真实用户名

Cnt*_*ite 26

EF Core 7.0 重大更改解决了这个问题。 https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/writing-changes

有三种方法可以继续:

  1. 在服务器上安装有效的证书。请注意,这是一个复杂的过程,需要获取证书并确保它由客户端信任的机构签名。
  2. 如果服务器有证书,但客户端不信任它,则TrustServerCertificate = True以允许绕过正常的信任机制。
  3. 将 Encrypt=False 显式添加到连接字符串。

  • 添加 TrustServerCertificate=true 对我有用。 (5认同)

小智 0

当我在 Nuget 控制台中尝试使用“Scaffold”命令时,我收到了同样的错误。Microsoft.EntityFrameworkCore.Tools 和 Microsoft.EntityFrameworkCore.SQLServer 的版本为 7.0.0。然后我将这两个包降级到 6.0.9 版本,一切正常。