C#服务超时(30000毫秒),等待事件查看器中的事务响应

时间:2009-08-26 14:39:06

标签: c# .net windows-services service event-log

我有一个C#服务。它是一个内存和CPU猪。它会整晚运行,在数据库中移动数据。早上7点左右,它一再发布到事件查看器,

  

超时(30000毫秒)等待   来自的交易响应   ServName服务。

然后意外停止。有没有人知道这条消息的含义,或者如何诊断它?

更新1

数据库事务没有超时。服务管理控制台正在记录有关尝试控制服务的消息。

更新2

此处的问题与数据库访问无关。服务管理控制台在尝试控制服务时抛出错误。

4 个答案:

答案 0 :(得分:1)

如果服务的主线程无法在30秒内返回控件,则会发生这种情况。但是,如果您检查任务管理器,则服务exe仍将在后台运行。

解决方案是确保服务的主要功能在超时期限内返回。

-Surya

答案 1 :(得分:0)

我认为交易的持续时间超过30秒。

尝试发送交易,例如:

使用(transactionscope ...) 插入一些东西 睡30秒 插入更多内容。

它应该给你相同的结果。如果是,请尝试优化或配置事务超时。

希望这有帮助

问候。

答案 2 :(得分:0)

这可能看起来像一个奇怪的,偏离基础的建议,但是......数据库的事务日志空间是否耗尽?

答案 3 :(得分:0)

有同样的问题。你说得对,这与数据库无关。我假设您运行的是Windows Server 2008或Vista,并且您的应用程序是多线程的。

试试这个:

http://support.microsoft.com/kb/972596/