一個Windows服務程序是在Windows操作系統下能完成特定功能的可執行的應用程序。Windows服務程序雖然是可執行的,但是它不像一 般的可執行文件通過雙擊就能開始運行了,它必須有特定的啟動方式。這些啟動方式包括了自動啟動和手動啟動兩種。對於自動啟動的Windows服務程序,它 們在Windows啟動或是重啟之後用戶登錄之前就開始執行了。只要你將相應的Windows服務程序注冊到服務控制管理器(Service Control Manager)中,並將其啟動類別設為自動啟動就行了。而對於手動啟動的Windows服務程序,你可以通過命令行工具的NET START 命令來啟動它,或是通過控制面板中管理工具下的服務一項來啟動相應的Windows服務程序。
同樣,一個Windows服務程序也不能像一般的應用程序那樣被終止。因為Windows服務程序一般是沒有用戶界面的,所以你也要通過命令行工具或是下
面圖中的工具來停止它,或是在系統關閉時使得Windows服務程序自動停止。因為Windows服務程序沒有用戶界面,所以基於用戶界面的API函數對
其是沒有多大的意義。為了能使一個Windows服務程序能夠正常並有效的在系統環境下工作,程序員必須實現一系列的方法來完成其服務功能。
Windows服務程序的應用范圍很廣,典型的Windows服務程序包含了硬件控制、應用程序監視、系統級應用、診斷、報告、Web和文件系統服務等功
能。
和Windows服務程序相關的命名空間涉及到以下兩個:System.ServiceProcess 和System.Diagnostics。
在VS上新建Windows服務項目:右鍵添加服務按照程序
選擇serviceProcessInstaller1>修改裡面的屬性:
選擇serviceInstaller1,修改裡面的屬性:
1.Service啟動屬性:
Manual 服務安裝後,必須手動啟動。
Automatic 每次計算機重新啟動時,服務都會自動啟動。
Disabled 服務無法啟動。
安裝完成之後也可以在系統服務管理器中,設置相應Service的屬性或啟動方式等
計算機管理 -> 服務和應用程序 -> 服務 -> ...
public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { Thread.Sleep(10000); //休息是為了附加到進程進行斷點調試 //開始服務的業務邏輯 } protected override void OnStop() { } }
完成後編譯通過則進行服務的安裝。
InstallUtil.exe的所在目錄 Windows服務所在目錄 //注意中間有空格
InstallUtil.exe的所在目錄 -u Windows服務所在目錄 //使用-u命令卸載