Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从Docker容器内的ASP.NET核心应用程序连接tp SQL Server数据库_Docker_Kubernetes_Docker Container - Fatal编程技术网

无法从Docker容器内的ASP.NET核心应用程序连接tp SQL Server数据库

无法从Docker容器内的ASP.NET核心应用程序连接tp SQL Server数据库,docker,kubernetes,docker-container,Docker,Kubernetes,Docker Container,我已经创建了一个ASP.NET核心应用程序,它将使用SQL Server作为其后端,并安装在本地计算机上。我正在使用Visual Studio开发ASP.NET核心web应用程序,如果我通过Visual Studio运行应用程序,则能够毫无问题地连接到SQL Server 在Docker容器中部署应用程序后,应用程序无法与主机上安装的SQL Server通信 我已在本地计算机上启用“TCP”连接并在“高级防火墙设置”中启用端口。我可以使用IP地址和端口连接到SQL Server(IpAddres

我已经创建了一个ASP.NET核心应用程序,它将使用SQL Server作为其后端,并安装在本地计算机上。我正在使用Visual Studio开发ASP.NET核心web应用程序,如果我通过Visual Studio运行应用程序,则能够毫无问题地连接到SQL Server

在Docker容器中部署应用程序后,应用程序无法与主机上安装的SQL Server通信

我已在本地计算机上启用“TCP”连接并在“高级防火墙设置”中启用端口。我可以使用IP地址和端口连接到SQL Server(
IpAddress,端口

下面是我用来在Docker容器内部署映像的命令:

docker run -d -p 5061:80 --name mycurrentserviceapicontainer mycurrentserviceapi --network="host"
资料:

我能够访问没有DB连接的API,但API具有与DB连接相关的功能,从而导致问题

问题:

连接超时已过期。登录后阶段经过的超时时间。连接可能在等待服务器完成登录过程并响应时超时;或者,它可能在尝试创建多个活动连接时超时。尝试连接到此服务器的持续时间为-[预登录]初始化=5;握手=435;[登录]初始化=0;认证=0;[登录后]完成=14251

连接字符串:

服务器=ipaddress,49172;数据库=DockerDb;用户=sa;密码=密码;MultipleActiveResultSets=true

49172-它是TCP端口,在Windows防火墙的入站规则中启用了该端口,并且能够通过Sql Server Management Studio连接该端口

我不知道我为什么会遇到这个问题。我已经搜索了很多文章,没有任何帮助我纠正这个问题。有人遇到过这个问题吗?请就此提供您的建议


谢谢您的时间。

您可以共享您的连接字符串、网络计算机上的更多信息(如果不止一台),还可以检查docker命令中--network=“host”的使用情况。您是否可以使用telnet或任何类似命令访问数据库?这都是登录后的操作。因此建立了连接,建立了握手,但没有进行登录操作。您能确认您使用的凭据是SQL Server身份验证,并且它们已向数据库本身发送了PERM吗?@Dockstar,谢谢您的回复。是的,我正在使用SQL Server身份验证。连接字符串服务器=;数据库=DockerDb;用户=sa;密码=密码;MultipleActiveResultSets=true。它拥有数据库的权限,因为我可以通过SQLServerManagementStudio连接数据库,也可以通过VisualStudio和“IISExpress”运行应用程序。请分享你的想法。谢谢。@CristianCordova,连接字符串服务器=;数据库=DockerDb;用户=sa;密码=密码;MultipleActiveResultSets=true。49172是TCP端口,我在Windows防火墙的入站规则中添加了它以接受该端口。我可以通过SQLServerManagementStudio和VisualStudio&“IIS Express”连接它。请分享你的想法。谢谢。Jic,我建议您使用介于1024和49151之间的端口,而不是49172。您可以尝试暂时禁用防火墙,以查看是否可以访问数据库。