1. 程式人生 > >C#Windows Service程序的創建安裝與卸載

C#Windows Service程序的創建安裝與卸載

ESS file args 程序 啟動 tostring dem orm RR

C#Windows Service程序的創建安裝與卸載

一、開發環境

操作系統:Windows7x64 sp1 專業版

開發環境:Visual studio 2013

編程語言:C#

.NET版本: .NET Frmework 4.0

二、創建Windows Service程序

1.新建一個windows Service程序起名為ServiceDemo

技術分享圖片

2.修改Service1.cs類為ServiceDemo

技術分享圖片

3.默認可以看到下面代碼重寫一個OnStart()和OnStop()方法

1         protected override void OnStart(string
[] args) 2 { 3 } 4 5 protected override void OnStop() 6 { 7 }

4.在啟動(onstart)和停止(OnStop)中加入幾行測試代碼

 1         /// <summary>
 2         /// 啟動
 3         /// </summary>
 4         /// <param name="args"></param>
 5         protected override
void OnStart(string[] args) 6 { 7 string startStr = string.Format("{0}-{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), "程序啟動"); 8 Log(startStr); 9 } 10 11 /// <summary> 12 /// 停止 13 /// </summary> 14 protected override
void OnStop() 15 { 16 string stopStr = string.Format("{0}-{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), "程序停止"); 17 Log(stopStr); 18 } 19 void Log(string str) 20 { 21 string path = "D://logFile.log"; 22 using (StreamWriter sw = File.AppendText(path)) 23 { 24 sw.WriteLine(str); 25 } 26 }

5.雙擊ServiceDemo進入ServiceDemo設計界面在空白位置右鍵-->菜單添加安裝程序,如下圖所示

技術分享圖片

6.可以看到設計界面出現倆個組件

技術分享圖片

7.修改這倆個組件部分屬性

serviceInstaller1的屬性窗口將Servicename修改為ServiceDemo,Description改為Service Demo Program,StartType 為Manual

技術分享圖片

修改serviceProcessInstaller1屬性將Account改為localSystem如下圖所示

技術分享圖片

8.鼠標右鍵編譯生成程序可以看到生成程序的具體目錄

技術分享圖片

9.這裏一個Windows service程序就編寫完畢。

三、安裝該服務程序

1.管理員身份運行命令終端(記住是管理員身份)

技術分享圖片

打開命令終端程序

技術分享圖片

2.安裝服務

installutil.exe filename

卸載服務:
installutil.exe /u filename

安裝服務程序

因為Installutil.exe程序在 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ 目錄下,需要通過cmd命令 "cd" 切換目錄。v4.0.30319是編譯該Windows Service程序的版本(自己選擇對應的版本)

輸入如下所示:(根據自己程序的路徑自己選擇,輸入完畢回車)

技術分享圖片

安裝完成提示

技術分享圖片

安裝完成後在計算機->管理->服務列表中就可以看到剛才編寫的服務程序

技術分享圖片

可以手動右鍵啟動\停止程序

技術分享圖片

技術分享圖片

卸載服務

只需要在installutil.exe 後面加 /u 即為卸載命令

技術分享圖片

根據前面程序的功能啟動或者停止會有一個日誌記錄在D盤查看如下

技術分享圖片

C#Windows Service程序的創建安裝與卸載