我有一个C#服务。它是一个内存和CPU猪。它会整晚运行,在数据库中移动数据。早上7点左右,它一再发布到事件查看器,
超时(30000毫秒)等待 来自的交易响应 ServName服务。
然后意外停止。有没有人知道这条消息的含义,或者如何诊断它?
更新1
数据库事务没有超时。服务管理控制台正在记录有关尝试控制服务的消息。
更新2
此处的问题与数据库访问无关。服务管理控制台在尝试控制服务时抛出错误。
答案 0 :(得分:1)
如果服务的主线程无法在30秒内返回控件,则会发生这种情况。但是,如果您检查任务管理器,则服务exe仍将在后台运行。
解决方案是确保服务的主要功能在超时期限内返回。
-Surya
答案 1 :(得分:0)
我认为交易的持续时间超过30秒。
尝试发送交易,例如:
使用(transactionscope ...) 插入一些东西 睡30秒 插入更多内容。
它应该给你相同的结果。如果是,请尝试优化或配置事务超时。
希望这有帮助
问候。
答案 2 :(得分:0)
这可能看起来像一个奇怪的,偏离基础的建议,但是......数据库的事务日志空间是否耗尽?
答案 3 :(得分:0)
有同样的问题。你说得对,这与数据库无关。我假设您运行的是Windows Server 2008或Vista,并且您的应用程序是多线程的。
试试这个: