在哪种情况下,.NET Window Service的OnStop()不会触发?

时间:2012-05-22 06:57:26

标签: c# .net vb.net

我想知道.NET Window Service的OnStop()在哪种情况下不会触发?

当计算机突然重启,电源故障,关机或任何其他情况时会触发吗?

1 个答案:

答案 0 :(得分:2)

它将在机器的服务控制管理器收到该服​​务的停止指令的情况下触发。

如果有人选择通过Services MMC管理单元执行Stop操作(直接发送到您的服务或标记为依赖项的服务),或者有人发出sc stop命令,则会发生这种情况在命令行(再次,您的服务或依赖)。

或者,如果计算机上运行的任意程序(具有足够的权限)连接到服务控制管理器并发出停止命令,则可能发生这种情况。

  

当计算机突然重启,电源故障,关机或任何其他情况时会触发吗?

  • 突然重启 - 没有
  • 电源故障 - 正如评论中所述,显然不是。
  • 关机 - 没有
  • 任何其他 - 如上所述

可以选择接收关机事件 - 请参阅CanShutdownOnShutdown。您还可以处理一些电源状态更改事件(请参阅OnPowerEvent)。