[C#] 撰寫一個簡單的Windows Service
前言
有時候我們會再Server上撰寫一些簡單的小程式,
可能是會定時執行某些任務,但其實不需要任何的畫面顯示,
那我們可以選擇使用Windows Service的方式來運行這些程式,
現在就來介紹如何撰寫一個簡單的Windows Service
實際演練
首先,先建立一個Windows Service的Project
我們可以看到Project的結構長得像這樣
之後進入ServiceSample的Design Mode,並在上面點選滑鼠右鍵,選擇Properties
設定服務的名字及其他屬性
在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
可看到畫面上出現serviceProcessInstaller1以及serviceInstaller1,
設定ServiceInstaller1屬性Name為MySampleService,StartType為Auto
設定ServiceProcessInstaller1屬性Account為Local System 本機帳號)
接下來要進行將程式安裝至Windows的服務之中,打開Visual Studio Tools的Visual Studio 2008 Command Prompt
輸入 installutil 程式所在目錄\WindowsServiceSample.exe,執行成功會看到畫面如下
之後打開控制台=>系統管理工具=>服務,可以看到服務已經被成功的安裝
接下來再點選滑鼠右鍵,選擇啟動,把正式的把服務運行起來
若要移除服務,一樣的只需要在Commad Prompt輸入
installutil /u 程式所在目錄\WindowsServiceSample.exe,成功畫面如下
即可解除安裝。
結語
使用Windows服務可以避免用戶不小心關閉程式而導致錯誤的發生,
也可以當作Daemon運行的一種選擇,依據使用上的需求而選擇囉!
如果有任何問題,歡迎大家多多指教 :)
參考文章: