我们有一个 .NET Windows 服务偶尔会在一台特定服务器上关闭,上个月大约关闭了 3 次。日志记录显示正在调用 OnStop
方法,因此我认为服务没有崩溃。但是,我们不知道关闭服务的原因。
有什么方法可以找出关闭服务的原因吗?在 OnStop
期间我可以记录什么吗? Windows 事件查看器仅显示应用程序已关闭,安全日志未显示当时已通过身份验证的任何用户帐户。
该服务在 Windows Server 2003 SP2 (5.2.3790) 上的 .NET 3.5 SP1 中运行。
没有服务依赖性。此服务不依赖于任何其他服务,也没有其他服务依赖于此服务。
最佳答案
无法从服务内部判断,因为这是从 SCM 调用的 - 无论谁要求 SCM 停止您的服务,服务都看不到...
我认为您的主要选择是在那段时间检查事件日志...是否也关闭了其他服务?是否有任何计划任务正在运行等?
“相当肮脏”的选择(最后的手段/绝望)是将 CanStop 设置为 false...在这种情况下,会有人看到停止您的服务时出现问题并“希望”问您为什么您的服务没有可以停止...
关于c# - 什么停止(而不是崩溃)我的 Windows 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838838/