我正在使用实体框架(DevArt的数据提供者)处理mysql数据库。我注意到,有时在日志中我会遇到这样的异常:
System.Data.EntityCommandExecutionException:执行命令定义时发生错误。有关详细信息,请参阅内部异常。 -> Devart.Data.MySql.MySqlException:在查询期间失去了与MySQL服务器的连接 -> System.TimeoutException:服务器没有在指定的超时间隔内响应。 -> System.IO.IOException:无法从传输连接读取数据:连接尝试失败是因为连接方在一段时间后没有正确响应,或者已建立的连接失败是因为连接主机没有响应。
这个例外是同时发生的几次(?)一次丢弃几个连接)事情发生后-一切正常运转一段时间。我试过了
我知道这个错误可能太普遍了,但是需要一个建议来避免这个错误?尝试在池和Validate Connection=true;中增加连接--没有结果。
发布于 2014-01-02 14:38:21
“查询期间丢失到MySQL服务器的连接”错误的可能原因:
- look for any errors in the logs of MySQL server
- check the value of wait\_timeout variable at your MySQL server
如果要显式地向您的DbContext (或ObjectContext)对象提供普通的ObjectContext连接,请考虑以下几点:
- [http://www.devart.com/dotconnect/mysql/docs/?Devart.Data.MySql~Devart.Data.MySql.MySqlConnection~ConnectionLost\_EV.html](http://www.devart.com/dotconnect/mysql/docs/?Devart.Data.MySql~Devart.Data.MySql.MySqlConnection~ConnectionLost_EV.html)
- [http://www.devart.com/dotconnect/mysql/docs/?Devart.Data~Devart.Common.ConnectionLostCause.html](http://www.devart.com/dotconnect/mysql/docs/?Devart.Data~Devart.Common.ConnectionLostCause.html)
- [http://www.devart.com/dotconnect/mysql/docs/?Devart.Data~Devart.Common.ConnectionLostContext.html](http://www.devart.com/dotconnect/mysql/docs/?Devart.Data~Devart.Common.ConnectionLostContext.html)
发布于 2013-12-30 13:31:35
在这种情况下,对mysql 2013年9月版本的更新(2013年8月安装)和禁用连接池似乎起到了帮助作用。将等待1天,然后启用池。如果这也有效-比这是“版本的”错误,在其他情况下-禁用连接池有帮助。
发布于 2019-07-17 23:09:04
这也发生在我身上,但对我没有什么作用,我想我不会掉进上面的用例。Devart获得了默认的命令超时,这似乎是在默认超时(30秒)之后停止执行。
Devart建议在连接字符串(;Default Command Timeout=6000;)中设置这个值,但是连接字符串‘默认命令超时’的值似乎没有兑现,所以最后我在代码中更新了命令超时值,如下所示,解决了我的问题。
using (var model = new MyEntities())
{
System.Data.Entity.DbContext dbContext = model as System.Data.Entity.DbContext;
dbContext.Database.CommandTimeout = 6000;
model.CallProcedure1(idProcess);
model.CallProcedure2(idProcess);
}https://stackoverflow.com/questions/20838401
复制相似问题