首页 > 解决方案 > .Net Web 应用程序 SQL Server 连接字符串 Linux 问题

问题描述

我遇到了与部署在 Linux 环境中的 .net 核心应用程序使用的 SQL Server 连接字符串有关的问题。.net 核心应用程序需要访问不同服务器上的 sql 服务器。

我正在使用的连接字符串如下

"ConnectionStrings" : {
SQLDbContext": "Server=serverabc\\dev_xys;Database=mynewDatabase;Integrated Security = True"
}

当我在我的 Windows 电脑上本地运行时它工作正常

但是当它部署到 Linux 机器上时,我收到以下错误

ExtendedSocketException:名称或服务未知

Dns.cs 中的 System.Net.Dns.GetHostEntryOrAddressesCore(string hostName, bool justAddresses),第 323 行

例外:无法连接到 SQL Server Browser。确保 SQL Server Browser 已启动

我已经检查了运行 .Net Service Deployed 的服务帐户可以访问数据库。

连接字符串是否需要更改?

标签: .netsql-serverlinuxconnection-string

解决方案


这只有在

  1. SQL Server 启用了 TCP/IP,并且浏览器服务正在运行
  2. Windows 防火墙允许在 SQL Server 实例侦听的任何端口上使用 UDP 端口 1434 和 TCP。
  3. 客户端可以解析主机名

或者,您可以使用 SQL Server 配置管理器将 SQL Server 实例设置为侦听固定端口(默认为 1433),并在连接字符串中指定该端口而不是实例名称。


推荐阅读