繁体   English   中英

Entity Framework Core 7 连接证书信任异常

[英]Entity Framework Core 7 connection certificate trust exception

我最近在开发中升级到 Entity Framework Core 7,但出现异常,“已成功与服务器建立连接,但在登录过程中发生错误。(提供商:SSL 提供商,错误:0 - 证书链是由不受信任的机构发布的。)”我正在使用 Microsoft SQL Server Developer(64 位)。 我试图在 VS2022 服务器资源管理器中进行更改以禁用加密并信任服务器证书,我没有安装,但异常仍然存在。 如何在开发中减轻这种情况?

这不是 EF Core 7.0 中的错误,而是提高了安全性。 Microsoft 建议以下 3 个解决方案,哪个适用于您。

  1. 安装有效的证书。
  2. 将 TrustServerCertificate=True 添加到连接字符串
  3. Encrypt=False添加到连接字符串

旧行为SqlClient 连接字符串默认使用 Encrypt=False。 这允许在本地服务器没有有效证书的开发机器上进行连接。

新行为SqlClient 连接字符串默认使用 Encrypt=True。 这意味着:

服务器必须配置有效证书 客户端必须信任此证书 如果不满足这些条件,则会抛出 SqlException。 例如:

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

https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/breaking-changes

Microsoft.EntityFrameworkCore.SqlServer升级到7.0.0后出现同样的问题

我通过将TrustServerCertificate=Yes添加到 SQL 服务器连接字符串来修复该问题。

我认为它失败了,因为是最近的更新。 我遇到了同样的问题,我修复了它重新安装以前的版本 (6.0.11)。 我希望这个评论对你有帮助。

似乎答案是等待 EF Core 7 的更新。这应该是一个错误。 我的开发全部在一台带有 SQL 服务器开发版实例的机器上进行。 我想使用 localdb 可能是一种方法。

在连接字符串中添加 Encrypt=False 后,它解决了问题。

“DefaultConnection”:“服务器=(localdb)\mssqllocaldb;数据库=CommunicationDB;Trusted_Connection=True;MultipleActiveResultSets=True;Encrypt=False;”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM