我可以下载并运行microsoft/mssql-server-windows-express
所以这是有效的:
docker run -d -p 1433:1433 -e sa_password=MyPassword1 -e ACCEPT_EULA=Y microsoft/mssql-server-windows-express
我可以通过Powershell和SQL服务器管理工作室(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。