我正在开发一个更新数据库中数据表的c#实用程序。我的应用程序在12小时后停止显示一个消息框,指示Windows错误 我确信没有内存泄漏。此外,它还停止运行12小时,表示超时过期消息。所以我将Commandtimeout属性设置为无穷大。现在这个错误不再显示了。
12小时后还有什么可以阻止这个实用程序?这个“Windows错误”消息是什么意思?
我使用AppDomain.CurrentDomain.UnhandledException来处理未处理的异常,并且在长时间运行该实用程序后,我收到了以下消息框。 消息框:“超时已过期。操作完成之前经过的超时时间或服务器没有响应”
知道我正在使用SQLServer2008 R2并且我已经将所有commandTimeout设置为0。
怎么了?为什么我仍然会收到此错误?!
答案 0 :(得分:0)
为什么你希望你的实用程序能够继续工作,如果某些事情要定期进行,那么你应该使用调度来调用你的实用程序。这将确保您的应用程序不会将资源保持在锁定状态 现在来到你的观点...如果申请必须运行超过12小时conti。然后检查,..是否有任何东西使所有连接强制破坏为数据库安排的示例备份。即使超时设置为无穷大,这也会使所有连接中断。
答案 1 :(得分:0)
您使用的是哪个数据库?我知道在mysql中,数据库有一个限制,即连接保持打开的时间。也许在您的数据库中它是12小时,但是如果这是mySql,则更改超时设置有点问题。所以请记住改变全局和本地设置,否则它不会改变,祝你好运。
答案 2 :(得分:0)
有些网络每12小时就有一次hickup来崩溃p2p应用程序。也许每X小时触发一些与网络相关的问题。
您的代码是否正确地重新连接失败并记录正确的错误消息,或者它是否会崩溃?