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