无法在Linux机器上运行docker镜像用于使用MySQL db与Pomelo.EntityFrameworkCore.MySql的dot net core 2.1应用程序

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

当在Linux机器上执行(运行).net core 2.1 API应用程序的docker镜像时,抛出以下异常

我正在使用Pomelo.EntityFrameworkCore.MySql来使用MySQL数据库

当我在Windows机器上构建并运行api映像时它运行正常,但是当我尝试在linux上运行相同的映像时,会抛出以下异常。

当我在linux机器上构建和运行映像时,情况也是如此。

不确定出了什么问题。

Microsoft.EntityFrameworkCore.Database.Connection [20004。使用与服务器上的数据库''的连接发生错误。 MySql.Data.MySqlClient.MySqlException(0x80004005):连接超时已过期。 --- System.ObjectDisposedException:在System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle,布尔和成功)的System.Runtime.InteropServices.SafeHandle.DangerousAddRef(布尔和成功)中已关闭安全句柄Interop.Sys.TryChangeSocketEventRegistration(IntPtr port, SafeHandle套接字,SocketEvents currentEvents,SocketEvents newEvents,IntPtr数据)

期待专家的帮助和高度赞赏。

c# mysql asp.net-core asp.net-core-2.0 asp.net-core-webapi
1个回答
1
投票

无法从运行应用程序的Docker容器访问运行MySQL Server的容器/服务器。因此,在尝试打开数据库连接时,您的应用程序将超时(“连接超时已过期”)。

确保您的网络设置允许您的Web服务器通过端口3306与DB服务器联系。

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