【问题标题】:SQL Server instance string connection in Linux DockerLinux Docker 中的 SQL Server 实例字符串连接
【发布时间】:2017-03-22 08:14:36
【问题描述】:

我正在向 docker image microsoft/dotnet:1.0.1-core 发布一个应用程序,该应用程序在连接字符串中引用了 Sql Server 实例:

"Data Source=host\instance;Initial Catalog=database;User ID=user;Password=pass;"

在 Windows 环境下它也可以工作,但是使用 docker,应用程序无法连接到数据库。将Data Source 更改为使用port 而不是instance 它可以工作。

"Data Source=host,port;Initial Catalog=database;User ID=user;Password=pass;"

如何使用实例而不是端口从 docker 连接到 Sql Server?

【问题讨论】:

  • “应用程序无法连接数据库”有具体的错误信息吗?
  • “SQL Server Browser”是否在数据库机器上运行?
  • 不仅仅是SQL Server Broswer,还需要允许UDP 1434端口通过。

标签: c# sql-server docker entity-framework-core .net-core


【解决方案1】:

According to Saurabh Singh from Microsoft:

.Net Core v 1.1 中提供了实例名称支持。 在 .Net Core v1.0 中,除 Windows 以外的操作系统不支持实例名称。

所以我认为您不能使用实例名称从在 Linux 上运行的 .Net Core 1.0 连接到 SQL Server。

您的选择似乎是:

【讨论】:

  • 这不是 .NET Core 问题。实例名称通常是一个 Windows 概念。在运行 Linux 的 docker 容器中,SQL Server 将通过 ip/port 可用。此外,通常一个容器就像一个实例。如果您需要多个实例,请改为创建多个容器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多