【问题标题】:Asp.Net Core on Mac OS X connect to SQL Server Linux DockerMac OS X 上的 Asp.Net Core 连接到 SQL Server Linux Docker
【发布时间】: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


【解决方案1】:

是的。您需要在 application.json 中连接到数据库

我是这样做的

 {
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=127.0.0.1,1433;Initial Catalog=vchasno;User ID=sa;Password=Dontoretto23;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 2020-10-01
    • 2016-06-28
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多