Docker容器中的.Net Core应用无法连接到SQL Server

时间:2018-10-19 16:27:20

标签: sql-server docker

所以我知道SO上已经有很多与此相关的问题,但是我认为目前我已经阅读了所有问题,尝试了所有建议,但仍未找到解决方案。

我有一个简单的.Net核心MVC应用程序,具有与本地MSSQL数据库的连接。在容器中运行SQL时,我无法使其连接到SQL。我只是收到一个错误,指出无法建立连接。在IIS Express中运行时,连接正常。

我的连接字符串是:

Data Source=10.11.56.36,1433;Initial Catalog=TestDB;Integrated Security=false;User id=testdb;Password=######;MultipleActiveResultSets=True

我的容器通过以下方式启动:

docker run -it -p 8080:80 testing

这是到目前为止我尝试过的事情:

  • 确保将SQL Server配置为接受远程连接
  • 使用“ host.docker.internal”作为服务器名称
  • 对SQL Server IP进行Ping操作以确保容器可以访问它
  • 已验证端口1433允许通过防火墙
  • 尝试了其他端口并配置了SQL Server以在其上进行侦听
  • 尝试在连接字符串中不包含端口

在过去的几个小时中,我还尝试了许多其他事情,但我一点也没有取得任何进展。我想念什么?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您正在运行Linux容器,请检查此错误是否是导致错误的原因:

https://github.com/dotnet/corefx/issues/29147

如果是这样,解决方法是将以下内容添加到dockerfile中的运行时映像

RUN apk add --no-cache icu-libs
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false

答案 1 :(得分:0)

我刚遇到这个问题。我花了3天的时间,对我来说,解决方法是使用完全合格的域名。

MyServerName.MyDomain.com