从c#连接Docker实例中的SQL数据库失败



我有一个c#程序,我想连接到Windows上一个简单的Dockerized SQL Server数据库。数据库的docker-compose.yml如下所示:

version: "3.9"
services:
db:
image: "mcr.microsoft.com/mssql/server"
environment:
SA_PASSWORD: "*****"
ACCEPT_EULA: "Y"

现在我试着在c#中连接它,像这样:

SqlConnection connection = new SqlConnection(@"Server=db;Database=master;User=sa;Password=*****;");
connection.Open();

connection.Open()时失败,出现以下错误:

System.Data.SqlClient。SqlException异常:[…]
System.ComponentModel。win32异常:网络路径无法找到

在我看来,问题显然是连接字符串。然而,我已经搜索和搜索,无法找出正确的连接字符串在这种情况下会是什么。有人能帮帮我吗?

编辑:

我现在也尝试了这个连接字符串:

@"Server=localhost,1433;Database=master;User=sa;Password=*****;"

这会导致以下不同的错误:

System.ComponentModel。win32异常:远程主机拒绝网络连接

我现在知道问题出在哪里了。

问题是我的docker-compose.yml仍然缺少ports部分。由于某些原因,我复制的教程中没有包含这一部分。

那么docker-compose.yml应该是这样的:

version: "3.9"
services:
db:
image: "mcr.microsoft.com/mssql/server"
environment:
SA_PASSWORD: "*****"
ACCEPT_EULA: "Y"
ports:
- "1433:1433"

之后,我可以使用以下连接字符串从c#连接到数据库:

@"Server=localhost,1433;Database=master;User=sa;Password=*****;"

相关内容

  • 没有找到相关文章

最新更新