无法将 SQL Server Docker 容器与 ASP.Net core MVC 应用程序连接

问题描述 投票:0回答:1

我正在运行 Windows10 和 docker Desktop v20.10.7。我正在学习 docker,从而创建了一个在容器上运行的 ASP.Net core MVC 应用程序,进一步为数据库创建了一个单独的容器,使用下面的命令。

docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Pa$$w0rd2021' 
           -e 'MSSQL_PID=Express' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest

目前我不专注于保存数据。

问题:当 ASP.NET Core 应用程序尝试与数据库(在容器中)建立连接时,例如在应用程序启动时播种数据库时,会观察到以下异常。

未处理的异常。 Microsoft.Data.SqlClient.SqlException(0x80131904):用户“”登录失败。
在Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,布尔allowCreate,布尔onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal&连接)
在 Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject、TaskCompletionSource`1 重试、DbConnectionOptions userOptions、DbConnectionInternal& 连接)

以下是发生异常时容器中的 SQL 错误日志:

登录 用户“”登录失败。原因:尝试使用 SQL 身份验证登录失败。服务器仅配置为集成身份验证。 [客户端:172.17.0.1]

使用的连接字符串:

尝试#1:

Server=localhost,1433;Database=PracticeMVC,User Id=SA;Password=Pa$$w0rd2021

尝试#2:

Server=localhost,1433;Database=PracticeMVC,User Id=SA;Password=Pa$$w0rd2021;Trusted_Connection=True;MultipleActiveResultSets=true;

尝试#3:

Server=localhost,1433;Database=PracticeMVC,User Id=SA;Password=Pa$$w0rd2021;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

没有任何效果...

非常感谢解决问题的支持/反馈。

提前致谢。

sql-server docker
1个回答
0
投票

如果您的计算机正在运行 mssql 服务器的本地实例。然后,即使您已经启动了 mssql 容器,您的代码也会尝试与本地实例连接。

最好从 SQl Server 配置管理器停止 SQL Server 服务,然后启动 mssql server 容器。

使用的连接字符串没问题。之后就可以工作了。

截图供参考: [1]:https://i.stack.imgur.com/WHzpa.png

© www.soinside.com 2019 - 2024. All rights reserved.