[C#] 撰寫一個簡單的Windows Service

[C#] 撰寫一個簡單的Windows Service

 

前言


有時候我們會再Server上撰寫一些簡單的小程式,

可能是會定時執行某些任務,但其實不需要任何的畫面顯示,

那我們可以選擇使用Windows Service的方式來運行這些程式,

現在就來介紹如何撰寫一個簡單的Windows Service

 

實際演練


首先,先建立一個Windows Service的Project

34

我們可以看到Project的結構長得像這樣

35

之後進入ServiceSample的Design Mode,並在上面點選滑鼠右鍵,選擇Properties

設定服務的名字及其他屬性

36

在ServiceSample.cs上點選滑鼠右鍵,選擇View Code,撰寫服務的程式碼內容


    public partial class ServiceSample : ServiceBase
    {
        public ServiceSample()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Logger.Write("MyServiceSample is Start!");
        }

        protected override void OnStop()
        {
            Logger.Write("MyServiceSample is Stop!");
        }        
    }

 

 

 

可以在這邊撰寫服務開始和結束時所要進行的動作,

除之此外還可以override OnPause及OnContinue來撰寫暫停和繼續所要執行的動作,

但要記得將CanPauseAndContinue屬性設為True才能執行暫停和繼續。

接下來再進入ServiceSample的Design Mode,點選滑鼠右鍵,選擇Add Installer

37

可看到畫面上出現serviceProcessInstaller1以及serviceInstaller1,

設定ServiceInstaller1屬性Name為MySampleService,StartType為Auto

設定ServiceProcessInstaller1屬性Account為Local System 本機帳號)

39 40

接下來要進行將程式安裝至Windows的服務之中,打開Visual Studio Tools的Visual Studio 2008 Command Prompt

輸入 installutil 程式所在目錄\WindowsServiceSample.exe,執行成功會看到畫面如下

 

 

 

41

之後打開控制台=>系統管理工具=>服務,可以看到服務已經被成功的安裝

42

接下來再點選滑鼠右鍵,選擇啟動,把正式的把服務運行起來

43

若要移除服務,一樣的只需要在Commad Prompt輸入

installutil /u 程式所在目錄\WindowsServiceSample.exe,成功畫面如下

44

即可解除安裝。

 

結語


使用Windows服務可以避免用戶不小心關閉程式而導致錯誤的發生,

也可以當作Daemon運行的一種選擇,依據使用上的需求而選擇囉!

如果有任何問題,歡迎大家多多指教 :)

 

參考文章: