windows service自動重啟服務


服務一般都能正常的運行,但有時候也會有一些假死現象,比如公司有一考勤服務就因為依賴於硬件廠家的api,

但廠家api運行一段時間后會默名的假死,引起整個服務假死,因為這一假死現象具有不確定性,所以不太可能

看到假死后手動去進行啟動。

目前本人知道的有兩種方法解決這種情況:

1.寫另一個服務,對此當前服務進行監聽【需要一些共同數據來判斷是否為假死】,一但發現假死,進行重新啟動
2.利用服務本身進行重啟。

   a.打開 控制面板-》管理工具-》服務,找到需要自動重啟服務,點擊右鍵-》屬性,點擊 恢復 選項卡, 將 ”第一次失敗(F)",”第二次失敗(S)",”后續失敗(U)"都設定為"重新啟動服務",點擊確定,如圖:
    
   b.服務程序中開一線程,進行假死判斷, 一旦發現假死,執行 Environment.Exit(1); 這樣服務在退出后會重新進行啟動
注:此方法前提條件是判斷假死的線程還能正常運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM