[C#.NET][VB.NET] 如何建立 Windows 服務 Service 專案

[C#.NET][VB.NET] 如何建立 Windows 服務 Service 專案

Service是在Windows背景執行的組件(Assembly),不需要任何與使用者互動的操作介面,記得之前在VB6時代也有寫過Service,那時是用NTSVC.ocx,而現在.NET Framework 也提供了相關的類別,功能更是強大,可以讓人省去不少開發的時間。

 

1.建立一個服務專案

快照-200932411507

2.在設計畫面連點兩下後,就會看到OnStart與OnStop兩個可覆寫的方法,我們可以在OnStart與OnStop程序中撰寫程式碼。

3.修改Service Name,每一台電腦上都只會有唯一的名稱。

快照-2009324115520

4.在OnStart加入程式碼,OnStart並不是真的會執行監看動作,它不能一直執行迴圈,如要製作簡易的輪詢機制我們可以用System.Timers.Timer類別來建立;應該也可以用委派或執行緒來建立,改天有時間應該可以來測測看。

5.使用ServiceInstaller、ServiceProcessInstaller控件來安裝Service,在設計畫面上按右鍵→加入安裝程式,不用自己再寫程式,VS真的是好用工具。

快照-200932412949

快照-2009324121214

 快照-200932412156 快照-2009324121525

6.在ServiceInstaller控件的StartType設定要啟動的類別,一般會使用Service開發專案,應該是要讓電腦一開機未登入使用者就執行,所以要設為自動Automatic;再來設定Description、DisplayName,觀察一下Windows的Service就可以知道這兩個屬性是在做啥用的。

快照-2009324122131

 

7.將ServiceProcessInstaller元件Account屬性的設定,如果你像我一樣懶,就可以將它設定為本機系統(LocalSystem),但它還是有一定的風險存在,要使用前得先評估一下自己的環境,因為我只是要測試,所以選一個最方便的來用。

上述兩大類別可以上MSDN找尋更多的屬性即方法ServiceProcessInstaller 類別ServiceInstaller 類別

8.專案按右鍵→屬性。

快照-2009324123817

9.建置專案

快照-2009324123931

專案建置好之後便可使用InstallUtil工具手動安裝服務或是建立一個安裝精靈介面來佈署,10、11選一個來佈署就可以了。

10.手動建立服務,在命令列輸入InstallUtil MyService.exe。手動解除服務,則為InstallUtil /u MyService.exe

開始→Microsoft Visual Studio 2005→Visual Studio 2005 Itanium Cross Tools 命令提示字元→將路徑切換到你的應用程式所在的路徑→輸入InstallUtil MyService.exe

我是將程式擺在C:下,應不會有人來問怎麼切換路徑吧

以下為安裝成功畫面

 

快照-2009324132252

以下為解除成功畫面

快照-2009324132541

 

 

 

 

 

11.建立安裝精靈

11-1.加入一個安裝專案

快照-2009324133119

11-2.在安裝專案中按右鍵→加入→專案輸出→主要輸出→確定

快照-2009324133242

11-3.安裝專案右鍵→檢視→自定動作

快照-2009324133939

11-4.在自定動作中按右鍵→加入自訂動作→選應用程式資料夾→選主要輸出從myService(作用中)

快照-2009324134224

快照-2009324134355

11-5.建置安裝專案,在Release資料夾就可以看到兩個安裝檔,執行它們其中一個就行了。

快照-2009324134656

快照-2009324134923

步驟寫了還真多,不知道有沒有人看不懂的

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo