2012-05-22 49 views
1

我想知道在哪種情況下,.NET Window Service的OnStop()不會觸發?在這種情況下,.NET Window Service的OnStop()不會觸發?

計算機突然重啓,斷電,關機或其他情況時會啓動嗎?

+1

如果您沒有正確實施它,它將不起作用。您可以安全地假定服務在停電或停機時停止。奇怪的問題。 –

+0

@漢斯我沒有提到onstop()函數在不工作它罰款......我只是想保證上面的問題,因爲它在服務器上運行.. @Steven我不能檢查,因爲它是在服務器上,我知道它會當電腦拔掉時不工作...我想知道這onStop()函數將在上述條件之前調用 – samirprogrammer

回答

2

它會在機器的服務控制管理器收到該服​​務的停止指令的情況下觸發。

如果有人選擇通過服務MMC管理單元執行停止操作(直接發送到您的服務或標記爲依賴項的服務),或者某人在命令中發出sc stop命令行(再次,無論你的服務或依賴)。

或者,如果機器上運行的任何程序(具有足夠權限)連接到服務控制管理器併發出停止命令,則可能發生此情況。

當計算機突然重新啓動,電源故障,關機或任何其他情況時它會啓動嗎?

  • 突然啓動 - 無
  • 電源故障 - 爲解決在評論,顯然不是。
  • 關機 - 沒有
  • 任何其他 - 上述

爲解決有接收關閉事件的選項 - 見CanShutdownOnShutdown。您還可以處理一些電源狀態更改事件(請參見OnPowerEvent)。