天天看點

VS 2010一步步開發windows服務(windows service)

 基于0起步來建立一個服務,做到簡單的記錄時間日志功能,其具體招行方法可自行添加。

1.建立服務

VS 2010一步步開發windows服務(windows service)

2.删除預設服務檔案

VS 2010一步步開發windows服務(windows service)

3.添加自己的服務檔案

VS 2010一步步開發windows服務(windows service)

4.更改啟動項目

VS 2010一步步開發windows服務(windows service)

5. 引用 using System.Timers;并添加FileClass類

VS 2010一步步開發windows服務(windows service)

FileClass類

6. 添加上步中需要的InitService()方法

7. 解決System不包含windows屬性問題,引用程式集。

VS 2010一步步開發windows服務(windows service)

8.添加上面引用 的 tim_Elapsed 定時方法

9.此時生成解決方案是成功的

10.在OnStart等中寫入自己的方法,這裡用日志記錄

11.給服務添加安裝程式。右鍵滑鼠單擊MainService.cs[設計]*頁籤選項“添加安裝程式”。

VS 2010一步步開發windows服務(windows service)

12.可以看見項目中多了如下檔案群組件,serviceProcessInstaller1、serviceInstaller1是自動生成的

VS 2010一步步開發windows服務(windows service)

13.設定元件serviceInstaller1的主要屬性,StartType: AutoMatic自動啟動;ServiceName: 服務系統辨別,在cmd指令中執行sr start/stop/query等等指令時候使用,用來唯一辨別一個Window服務

VS 2010一步步開發windows服務(windows service)

14.設定元件serviceProcessInstaller1的主要屬性,Accout:賬戶類型,LocalSystem本地系統服務;

VS 2010一步步開發windows服務(windows service)

15.設定服務安裝後“允許和桌面進行互動”,

需要在ProjectInstaller.cs中添加如下代碼。

16.Windows服務的安裝和解除安裝

代碼寫完後,編譯通過後,就可以安裝、解除安裝、調試服務了。

在執行安裝或解除安裝服務前,我有把服務需要的相關檔案,複制到C:\Service\下面或其他路徑。一旦安裝完成後,此目錄不能變更,否則不能解除安裝該服務和服務運作會報錯。

安裝、解除安裝很簡單,隻要在VS指令行導航到,服務程式的路徑。然後運作以下指令就OK了。

打開如圖:

VS 2010一步步開發windows服務(windows service)

安裝服務:installutil C:\Service\TerminalTrance.exe

解除安裝服務:installutil /u C:\Service\TerminalTrance.exe

調試的話,隻能先安裝啟動服務,然後将該服務附加到程序,就可以調試了。安裝好服務後,就可以在win7服務管理裡面,管理剛剛啟動的服務了。

 安裝成功後可在服務中看到

VS 2010一步步開發windows服務(windows service)

 在服務程式中可以看到添加的服務

VS 2010一步步開發windows服務(windows service)

可以看到程式的日志記錄

VS 2010一步步開發windows服務(windows service)

另外一個方法是生成安裝exe程式

1.解決方案右鍵=》建立項目=》選擇安裝程式

VS 2010一步步開發windows服務(windows service)

2.安裝項目右鍵=》添加=》項目輸出,選擇主項目

VS 2010一步步開發windows服務(windows service)

3.安裝項目右鍵=》視圖=》自定義操作

4.自定義操作=》安裝右鍵=》選擇主輸出

VS 2010一步步開發windows服務(windows service)

5.解除安裝右鍵=》選擇主輸出

6.若有檔案需要添加到安裝後的檔案夾中=》點選應用程式檔案夾=》添加=》檔案,選擇檔案。安裝後就會生成指定檔案。

VS 2010一步步開發windows服務(windows service)

7.生成程式,完成,Setup檔案夾中找到exe安裝檔案執行就 OK了。解除安裝也是執行此exe,按提示下一步就OK。