一個Windows服務程式是在Windows操作系統下能完成特定功能的可執行的應用程式。Windows服務程式雖然是可執行的,但是它不像一般的可執行文件通過雙擊就能開始運行了,它必須有特定的啟動方式。這些啟動方式包括了自動啟動和手動啟動兩種。對於自動啟動的Windows服務程式,它們在Window... ...
一.Windows服務介紹:
一個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。
二.創建Windows服務:
在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() { } }
完成後編譯通過則進行服務的安裝。
三.安裝服務
以管理員身份運行cmd控制台應用程式 ,輸入: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe C:\Users\YANGYIHE\Desktop\C3.Apns\C3.Apns.PushServer\bin\Debug\服務.exeInstallUtil.exe的所在目錄 Windows服務所在目錄 //註意中間有空格
四.卸載服務:
以管理員身份運行cmd控制台應用程式,輸入: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe -u C:\Users\YANGYIHE\Desktop\C3.Apns\C3.Apns.PushServer\bin\Debug\服務.exe InstallUtil.exe的所在目錄 -u Windows服務所在目錄 //使用-u命令卸載