我有一个依赖EF的Windows服务,它运行正常,直到服务器出现故障。问题是在服务器再次启动之后,它没有自行修复并仍然抛出错误:
INTERNAL ERROR:执行命令需要一个开放且可用的连接。连接的当前状态已被破坏。
不是非常精通EF我不知道如何从这种情况中恢复,以及为什么它首先发生?有人曾经发生过这种事吗?
答案 0 :(得分:6)
ObjectContext的生命周期是多少?如果您在服务的生命周期中使用单个ObjectContext,则会导致此类问题。您应该将ObjectContext生命周期缩小到较小的时间窗口,为每个工作单元创建一个新的窗口。
答案 1 :(得分:-1)
描述here的解决方案对我有用, 修改连接字符串中的连接超时
FROM server ='MySQLServer''; Integrated Security = true; Initial Catalog ='EVConfiguration';连接超时= 100 TO server ='MySQLServer'; Integrated Security = true; Initial Catalog ='EVConfiguration';连接超时= 0