【发布时间】:2021-05-20 20:04:36
【问题描述】:
我有一个 .NET Core 应用,当通过dotnet run 命令运行它时,它会根据appSettings.json 中的ConnectionString 自动填充数据库,如下所示:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost,21433;Initial Catalog=DemoDb;User Id=demo;Password=******;"
},
由于我的 Docker 容器中已经有一个 SQL Server 数据库,因此我想使用现有的服务器容器并将新数据库填充到 Docker 中。当我运行应用程序时,新数据库已填充,但应用程序未初始化。
我使用与上面ConnectionString 相同的端口号,但是在运行应用程序时它会抛出 “底层异常消息是'无法建立连接,因为目标机器主动拒绝它。(localhost:4200) '" 错误。我认为这与在此容器中与其他数据库使用相同的端口有关。
在这一步:
-
我应该为这个新数据库创建一个新容器,还是为两个数据库使用相同的 SQL Server 容器?
-
我可以使用与之前在 Docker 上安装的数据库相同的端口吗?或者我应该用连接字符串中的另一个端口来改变它?
抱歉,我是 Docker 新手。
【问题讨论】:
-
SQL Server 数据库本身不使用端口。服务器实例侦听端口。如果您已经在该容器中启动并运行了另一个数据库并且可以连接到它,那么您应该使用与其他数据库相同的连接字符串,但 Initial Catalog 值除外。初始目录应设置为您现在使用的数据库名称。
标签: sql-server angular docker asp.net-core .net-core