Linux Docker 容器中运行的 .NET Core 应用程序无法访问特定的 SQL Server

Cod*_*512 1 docker asp.net-core

我正在尝试使用 SQL 身份验证连接到两个 MSSQL 服务器。当我在我的计算机上运行应用程序时dotnet run,它可以连接到这两个数据库。当我将应用程序放入 Docker 容器中时,该应用程序只能连接到其中一个数据库。我没有收到错误或超时。它只是处于 100% CPU 状态。两个数据库都位于同一网络上,并且我被告知没有内部防火墙。

OnConfiguring我让它在创建上下文的步骤中注销其连接字符串,并且连接字符串是正确的。我尝试过使用服务器的完全限定域名及其 IP 地址。

关于为什么我无法连接到该服务器有什么想法吗?

Cod*_*512 5

我找到了解决方案。https://github.com/dotnet/core/issues/3550#issuecomment-538608972给出了答案。基本上我切换到了 dotnet 图像的高山版本。

显然,dotnet 的默认图像存在问题。

我还必须将以下内容添加到我的 Dockerfile 中,以克服错误消息“不支持全球化不变模式”。

RUN apk add --no-cache icu-libs
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
Run Code Online (Sandbox Code Playgroud)