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
有三种方法可以继续:
- 在服务器上安装有效的证书。请注意,这是一个复杂的过程,需要获取证书并确保它由客户端信任的机构签名。
- 如果服务器有证书,但客户端不信任它,则TrustServerCertificate = True以允许绕过正常的信任机制。
- 将 Encrypt=False 显式添加到连接字符串。
小智 0
当我在 Nuget 控制台中尝试使用“Scaffold”命令时,我收到了同样的错误。Microsoft.EntityFrameworkCore.Tools 和 Microsoft.EntityFrameworkCore.SQLServer 的版本为 7.0.0。然后我将这两个包降级到 6.0.9 版本,一切正常。