【问题标题】:Unable to connect to SQL Server from Docker container (Linux image)无法从 Docker 容器(Linux 映像)连接到 SQL Server
【发布时间】:2021-07-29 16:19:30
【问题描述】:

在我们的应用程序中,我们使用基于 linux 的容器来访问安装在 VM 上的 SQL 服务器。在容器外的本地环境中一切正常,但是当我在本地容器中运行应用程序时,出现以下错误。

“与服务器建立连接成功,但在登录前握手过程中发生错误。(提供者:TCP Provider,错误:35 - 捕获到内部异常”

appsetings.json
"ConnectionStrings": {
    
    "DbConnection": "Server=tcp:vmname\\sqlservername,49763;Database=dbname;User ID=username_Users;Password=pwd;MultipleActiveResultSets=true;Integrated Security=False;"
  }

Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
.......

任何意见将不胜感激

【问题讨论】:

  • 所以真正的问题是如何使用 ADO.NET 从 Linux 连接到命名的 SQL Server 实例?服务器是否配置为使用 SSL?
  • @PanagiotisKanavos 是的,它被配置为使用 SSL,我已经在 linux 镜像中配置了 root CA
  • 我们正在使用实体框架

标签: sql-server linux docker containers


【解决方案1】:

该问题与 SQL 服务器的 TLS 版本有关,启用 TLS 1.2 解决了该问题

【讨论】:

    【解决方案2】:

    请将 ;TrustServerCertificate=true 添加到您的连接字符串中。

    【讨论】:

    • 试过了,同样的问题。感谢您的帮助
    • @SijoX 你解决了吗?我面临同样的错误。谢谢。
    • @John 见上面 SijoX 的回答。显然,升级 TLS 1.2 解决了这个问题。
    • @John 是的,升级 TLS 版本解决了问题
    猜你喜欢
    • 2019-05-29
    • 2016-12-26
    • 2017-06-07
    • 2020-06-12
    • 2022-01-04
    • 2018-07-28
    • 2018-01-31
    • 2019-11-19
    • 1970-01-01
    相关资源
    最近更新 更多