首页 > 解决方案 > 连接到 Windows Container 内的 MS SQLServer 时出现“信号量超时期限已过”

问题描述

我遇到了非常奇怪的问题。主机操作系统是 Windows 10 Pro,安装了 Docker for Windows。当我使用简单命令运行microsoft/mssql-server-windows-developer容器时

docker run -d -p 1433:1433 -e sa_password=<SA_PASSWORD> -e ACCEPT_EULA=Y microsoft/mssql-server-windows-developer

我可以使用服务器名称=localhost 通过 MS SQL Management Studio 连接到 SQL Server。但我无法打开服务器属性或打开“附加数据库”向导。一直有同样的错误“信号量超时时间已到”。我可以运行带有附加数据库的容器,并且可以在 MS SQL Management Studio 中执行 sql。但是当我运行我的 Web 应用程序时 - 我在连接到数据库时收到相同的错误“信号量超时期限已过期”。

然后我尝试使用通过 docker container inspect 获得的 IP 地址连接到 SQL Server——在我的例子中是 172.28.93.83。一切正常——我可以使用 SQL Server 进行管理,我的 Web 应用程序连接到数据库等。

那么,那里的问题是什么?我仍然想使用 localhost 连接到服务器,以便在所有开发人员环境中拥有统一的连接字符串。

当我尝试运行 Linux 容器时 - 使用 localhost 连接到服务器一切正常。

我可能很重要——在我决定使用 docker 与 MS SQL Server 一起工作之前,我安装了 MS SQL Server,然后将其卸载。也许它对路由或网络进行了一些更改,我必须删除这些更改...

我将不胜感激任何帮助

标签: sql-serverdocker

解决方案


尝试增加超时秒数connection string


推荐阅读