.net Core api 中的连接字符串应该是什么才能连接到 dockerized sql express?



我可以下载并运行microsoft/mssql-server-windows-express所以这是有效的:

docker run -d -p 1433:1433 -e sa_password=MyPassword1 -e ACCEPT_EULA=Y microsoft/mssql-server-windows-express

我可以通过PowershellSQL服务器管理工作室(localhost,1433和SA以及MyPass1)连接它 所以我可以看到数据库并玩它们。

但是在.NET core API应用程序中,我无法连接到dockerized mssql server express(Windows dockerized而不是linux)

"ConnectionStrings": {
"Default": "Server=127.0.0.1,1433;Database=master;User=sa;Password=MyPassword1 ;"
},

不幸的是,我总是收到此sql异常:

System.Data.SqlClient.SqlException: 'A Network-related or 建立与 的连接时发生特定于实例的错误 SQL Server。找不到服务器或无法访问服务器。验证 实例名称正确,并且 SQL Server 配置为 允许远程连接。(提供程序:TCP 提供程序,错误:0 - 否 可能由于目标计算机主动拒绝而建立连接 它。

因此,mssql-server-windows-express容器正在运行,我可以通过powershell命令和sql server management studio访问它,但是当我在Visual Studio 2017中运行.NET Core api应用程序时,我总是收到此sql异常。

就您的计算机而言,本地主机与正在运行的 Docker 实例的本地主机不同。通过使用 127.0.0.1,您告诉它连接到自身,而不是本地计算机。您需要将其更改为本地计算机的实际IP。

最新更新