我创建了一个ASP.NET Core应用程序,它将使用SQL Server作为其后端,该应用程序安装在本地计算机上。我正在使用Visual Studio开发ASP.NET Core Web应用程序,并且如果我通过Visual Studio运行应用程序,则可以毫无问题地连接到SQL Server。
在Docker容器中部署应用程序后,应用程序无法与主机上安装的SQL Server通信。
我已在本地计算机上启用“ TCP”连接并启用了“高级防火墙设置”中的端口。我能够使用ipAddress和PORT(IpAddress, PORT
)连接到SQL Server
下面是我用来在Docker容器中部署映像的命令:
docker run -d -p 5061:80 --name mycurrentserviceapicontainer mycurrentserviceapi --network="host"
信息:
我能够访问没有数据库连接的API,但是具有与导致问题的数据库连接相关的API。
问题:
连接超时已过期。登录后阶段已过超时时间。等待服务器完成登录过程并做出响应时,连接可能已超时;或者尝试创建多个活动连接时可能已超时。尝试连接到该服务器所花费的时间为-[登录前]初始化= 5;握手= 435; [登录]初始化= 0;认证= 0; [登录后] complete = 14251;
连接字符串:
Server = ipaddress,49172; Database = DockerDb; User = sa; Password = password; MultipleActiveResultSets = true
49172 -它是TCP端口,并且已在Windows防火墙的入站规则中启用了此端口,并能够通过Sql Server Management Studio进行连接。
我不确定为什么会遇到这个问题。我搜索了许多文章,没有任何帮助我纠正此问题。有人遇到这个问题吗?请提供您的建议。
感谢您的时间。