【发布时间】:2018-10-07 05:38:25
【问题描述】:
我已经在 docker 上完成了 sql server linux 的设置。
microsoft/mssql-server-linux:2017-latest "/opt/mssql/bin/sqls…" 5 days ago Up 18 minutes 0.0.0.0:1433->1433/tcp sql.server
当我使用 SQL Operations Studio 连接到服务器时,我可以连接它:
Server: localhost
Username: sa
Password: *********
但是当我在 asp.net 核心默认连接上更改我的默认连接字符串时
"DefaultConnection": "Data Source=localhost;Initial Catalog=PandaMarket.Identity;User ID=sa;Password=*********"
我在执行数据库更新时遇到此错误消息
dotnet ef database update 来自终端。
与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP Provider,错误:35 - 捕获到内部异常)
【问题讨论】:
-
您能否添加您的
docker run命令或compose文件(如果您使用它来运行容器)。此外,从问题中不清楚你在什么容器中运行什么。我假设您正在运行两个容器,一个使用ASP.Net core,一个使用SQL Server。对吗? -
您需要使用
User Id=sa而不是SQL ID=sa。另外,尝试隐式使用127.0.0.1而不是localhost。 -
@SaqibAhmed 基本上我已经在docker中运行了sql.server,我想执行“dotnet ef database update”它无法执行它。我没有使用 docker-compose,因为仍在开发中。
-
找不到服务器。您不能使用 localhost,因为 SqlServer 不在 localhost 上。你需要使用docker容器暴露的IP。
标签: sql-server entity-framework docker asp.net-core entity-framework-core