簡體   English   中英

無法連接 docker 容器內的 SQLServer

[英]Unable to connect SQLServer inside docker container

我正在創建一個容器,它有一個 .net 核心應用程序,基於官方的 microsoft 圖像。

當應用程序嘗試連接到 SQL 服務器時,我收到以下錯誤,它只發生在容器內:與服務器成功建立連接,但在登錄前握手期間發生錯誤。 (提供者:SSL 提供者,錯誤:31 - 加密(ssl/tls)握手失敗)

我的應用程序使用以下包與 sqlserver 通信:

  • System.Data.SqlClient 4.8.2
  • 小巧玲瓏 2.0.78

我的連接字符串如下所示:

Data Source=xxx.xxx.xxx.xxx;Initial Catalog=XXXXXXXX;User ID=XXXXX;Password=XXXX;MultipleActiveResultSets=True;Connect Timeout=60;TrustServerCertificate=true

我的 docker 版本是當時可用的最新版本:“Docker 版本 20.10.2,構建 2291f61”在 windows 上運行,這就是我創建 docher 映像的方式:

FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build-env
WORKDIR /prj

COPY . .
RUN dotnet publish myapp.csproj -o /app 

FROM mcr.microsoft.com/dotnet/aspnet:3.1
WORKDIR /app

RUN update-ca-certificates --fresh

COPY --from=build-env /app .
ENTRYPOINT ["dotnet", "myapp.dll"]

我已經在谷歌上搜索了一段時間,但沒有找到適合我的解決方案,有人可以幫忙嗎?

此錯誤通常發生在客戶端環境中,例如 docker 映像容器、Unix 客戶端或 Windows 客戶端,其中 TLS 1.2 是支持的最低 TLS 協議。

在 docker 映像/客戶端環境中配置 TLS/SSL 設置以連接 TLS 1.0。

MinProtocol = TLSv1 
CipherString = DEFAULT@SECLEVEL=1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM