获取 无法连接到 SQL Server Browser。确保 SQL Server ........ ,名称或服务未知

Posted

技术标签:

【中文标题】获取 无法连接到 SQL Server Browser。确保 SQL Server ........ ,名称或服务未知【英文标题】:Getting Cannot connect to SQL Server Browser. Ensure SQL Server ........ , Name or service not known 【发布时间】:2021-11-19 15:11:29 【问题描述】:

我已经使用以下图片配置了桌面泊坞窗

SQL Server 2019 ASP.NET 5 应用程序

SQL Server 工作正常(我已成功将其与本地 Windows 中的 SQL Server Management Studio 连接,并从应用程序映像中使用 telnet 进行检查,看起来还不错),但从我的 ASP.NET 应用程序中,我收到以下消息

无法连接到 SQL Server Browser。确保 SQL Server ........ , System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): Name or service not known"

我已经尝试了几种连接字符串的变体,但我仍然遇到同样的问题。

"connectionStrings": 
    "DefaultConnection": "Server=ip\server name\\MSSQLSERVER;Initial Catalog=Rocky;Integrated Security=True;User Id=myId;Password=myPsw;"

我错过了什么?

【问题讨论】:

您将Integrated Security 设置为true,然后定义用户名和密码;这没有任何意义。如果您使用集成安全性,根据定义,您不要定义用户名和密码,并且应用程序运行时的 Windows 用户的凭据会传递给实例。 在您的 .json 文件中,您是用一个反斜杠分隔实例名称 (Server=ServerNameOrIpAddress\MSSQLSERVER;) 还是两个 (Server=ServerNameOrIpAddress\\MSSQLSERVER;)?后者是正确的,前者是错误的。 MSSQLSERVER 通常代表 未命名 实例的(内部)实例名称 - 要连接到该实例,您通常应该提供实例名称 - 只有机器名称(或 IP 地址)。所以试试Server=ip\server name;Initial Catalog=Rocky,让我们知道这是否有效 如果您使用的是命名实例,您需要启动 SQL Browser 并通过网络访问。如果您想要默认实例,请不要使用 \MSSQLSERVER Integrated Security 是问题所在。但如果您确实想使用Integrated Security,则将容器配置为使用gMSA,否则将其设置为False。此外,如果 MSSQL Server 只有一个实例,则只需使用 IP/机器名称而不添加实例名称。这可能会有所帮助:connectionstrings.com/sql-server 【参考方案1】:

我终于找到了问题。

    我的 Docker 中有不止一张这个项目的图片。 容器中的appsettings.json 没有更新,连接字符串不同,我猜它使用的是旧版本的图像。清理所有图像后,将服务器更改为 IP 并重新部署它开始工作。

谢谢大家。

【讨论】:

以上是关于获取 无法连接到 SQL Server Browser。确保 SQL Server ........ ,名称或服务未知的主要内容,如果未能解决你的问题,请参考以下文章

无法从 SSMS 连接到 SQL Server Express

无法从我的 VS Code 扩展 (node.js) 连接到 SQL Server

SQL SERVER2008无法连接到服务器

如何解决SQL Server 2008 无法连接到

连接到本地 SQL Server 数据库的问题

无法用java连接到sql server