【问题标题】:c# windows service causes entire machine to hang indefinitely/crashc# windows服务导致整个机器无限期挂起/崩溃
【发布时间】:2009-02-05 14:48:30
【问题描述】:

我有一个 C# 2.0 Windows 服务(100% 托管代码),偶尔当它启动/重新启动时,它会导致整个机器(Windows Server 2003)无限期挂起。当我单击“启动服务”时,服务控制进度条显示一半,然后机器在本地终端和远程桌面会话中完全没有响应。唯一的解决办法是重启机器。

系统事件日志中没有任何内容。

该服务是一个远程处理服务器,它在启动时通过 TCP 对其他远程处理服务器(也是 Windows 服务)进行远程调用。

起初我认为这可能是网卡问题,所以我们更换了机器(更好的规格,不同的网卡),但我在大约十分之一的重启中仍然遇到同样的问题......。所以 90% 的时间是完全没问题的。

我做错了什么?

【问题讨论】:

  • 您能否发布至少一部分代码,也许只是 OnStop、OnPause、OnStart 等...

标签: c# windows-services windows-server-2003 remoting


【解决方案1】:

这是您代码中的错误!也许发布一个精简版。

根据@GWLlosa 的建议,添加大量日志记录。

【讨论】:

  • 它不会使机器崩溃,但它肯定会消耗它的所有资源,可怕地死锁,然后停止运行,让它看起来像是崩溃了。
【解决方案2】:

将日志记录代码添加到服务的 onStart 例程。您应该能够找出哪些函数调用正在占用您的 CPU,并从那里开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    相关资源
    最近更新 更多