【问题标题】:SqlServer 2008R2 Connection Problem with SqlClient in Entity Framework实体框架中 SqlClient 的 SqlServer 2008R2 连接问题
【发布时间】:2021-10-13 08:35:51
【问题描述】:

从旧版本的实体框架(核心 3)升级到这个之后:

Microsoft.EntityFrameworkCore.SqlServer/5.0.2

只有当我从我的 Docker 容器(在 asp.net core.5 中)连接到删除的 SqlServer 2008R2 时,我才开始收到连接错误。当我通过在 Azure 上创建新的 sqlerver 目录进行测试并进行相同的连接测试时,我没有收到错误消息(请参阅下面的错误消息)。

不幸的是,我正在使用无法升级 2008R2 的托管服务,并且我知道它已经过时,但仍然希望有一种解决方法可以让我使用它来使其正常工作。主机不会将任何新补丁应用到服务器(即使它们由于生命周期结束而可用)。

下面是我的连接字符串,它可以从我的 linux docker 实例连接到 sql azure,但在连接到 2008R2 时不起作用。

Server=tcp:mysite.com,1433,1433;Initial Catalog=dbcatalog1;Persist Security Info=False;User ID=user1;Password={passwordhere};MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False;Connection Timeout=30;

这是我遇到的错误

Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)\n","stream":"stdout","time":"2021-08-07T
18:53:54.515357149Z"}

【问题讨论】:

  • 不确定这是根本原因,但这个tcp:mysite.com,1433,1433 是错误的。端口不应指定两次。很可能是服务器强制加密,但客户端和服务器不共享任何加密套件。
  • 感谢@DavidBrowne-Microsoft,它实际上不在我的真实代码中,但无论如何我都仔细检查了。还是一样的问题。我认为这与这个问题 TLS 1.2 和 linux 有关。我不想降级 TLS。 stackoverflow.com/questions/66445221/…
  • 您的 SQL Server 2008R2 机器可能没有 TLS 1.2。
  • 是的,它设置了 TLS 1.2。

标签: sql-server docker asp.net-core entity-framework-core sql-server-2008-r2


【解决方案1】:

在最新的Microsoft.Data.SqlClient中是一个突破性的变化,设置

Trust Server Certificate=true

【讨论】:

  • 可悲的是,同样的错误。这是我更新的连接字符串。有什么文档可以指点我吗?我读到 TrustServerCertificate 带有我认为我已经满足的自己的要求。 :Server=tcp:xxx.com,1433,1433;Initial Catalog=xxx;Persist Security Info=False;User ID=xx;Password=xx;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=true;Connection Timeout=30;
  • 顺便说一句 @ErikEJ,我确实发现了您在 github.com/dotnet/SqlClient/issues/690 上评论的问题,我试图删除端口 1433(只是将其排除在外),但我仍然遇到同样的错误。
  • 然后我认为这几乎是我的确切问题,但奇怪的是我的服务器上确实安装了 tls 1.2。 stackoverflow.com/questions/66445221/…
  • 我认为您的服务器必须运行 SP4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多