连接字符串:
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;
我的连接字符串包含:
TrustServerCertificate=false
我得到这个错误:
已成功与服务器建立连接,但在登录过程中发生错误。(提供程序:SSL提供程序,错误:0-证书链是由不受信任的颁发机构颁发的。(
当我有一个连接字符串与此:
TrustServerCertificate=true
我得到:
用户登录失败<username>'。//<--删除了真实用户名
EF Core 7.0突破性更改解决了这一问题。https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/breaking-changes
有三种方法可以继续:
- 在服务器上安装一个有效的证书。请注意,这是一个涉及过程,需要获得证书并确保它由客户端信任的权威机构签名
- 如果服务器有证书,但不受client,则TrustServerCertificate=True以允许绕过正常信任机制
- 将Encrypt=False显式添加到连接字符串中
我遇到了同样的问题,并通过在连接字符串中添加Encrypt=False
来解决它。
然后我检查了你的连接字符串,我认为通过将Encrypt值改为False而不是true,它也适用于你。
我在尝试";脚手架";命令进入Nuget控制台。Microsoft.EntityFrameworkCore.Tools和Microsoft.EntityFrameworks Core.QLServer的版本为7.0.0。然后我将这两个包降级到6.0.9版本,一切都很好。