gpt4 book ai didi

c# - C#Dapper和MySQL随机错误,即 fatal error /从流读取失败等

转载 作者:行者123 更新时间:2023-12-02 19:52:00 24 4
gpt4 key购买 nike

我在MySQL和Dapper中使用.net核心工作程序(3.1)。

这不是一个新问题,我经历了一年多的时间,从来没有引起太大的问题,因为任务总是会重试。

但是,现在我正在开发一项新功能,必须在几秒钟内处理> 300-600k行,将数百次连接到数据库。

问题是,我可以在日志中随机看到MySQL.Data.MySqlClient.MySqlExceptions(通过Dapper获取记录或执行SQL命令)。

它们都是通用的,没有任何异常,流失败并且操作被取消了。

最奇怪的问题是,它仅在Linux环境中发生(客户端在MySQL实例中是本地的)。
当我在Windows上(通过VS或Docker镜像)运行它时,它可以正常运行,且测试负载大于30倍。

当我部署到linux(使用来自Microsoft的3.1 aspnet镜像的相同docker镜像)时,它失败。

我已经对其进行了一些测试,直接将其发布到ubuntu和dotnet运行dll并可以正常工作,但是我尝试过仅10次。

所以不是一个大考验。

知道我应该去哪里看吗?我试图确保Dapper查询exec将使用打开的连接,但事实并非如此。也有重试,但有时在初次尝试时效果很好,有时会重试2次,有时会连续5次失败20次。

无法查明此问题,不确定这是Dapper还是Microsoft镜像在Linux上运行不可靠...。

最佳答案

Reading from the stream has failed是针对Oracle的MySQL Connector / NET经常报告的错误:bug 75917bug 76597。有人报告了有关这些错误报告的各种解决方法。

我建议切换到MySqlConnector,这是MySQL的OSS替代ADO.NET库,支持.NET Core,真正的异步I / O和fixes many Connector/NET bugs

关于c# - C#Dapper和MySQL随机错误,即 fatal error /从流读取失败等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60021282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com