2018-08-23 根據別人的整理 開發Windows服務 一、 VS2012下開發Windows服務() 1、 打開VS2012,新建項目,選擇Windows服務,此處我以開發一個定時自動發送郵件的服務來做介紹,如下圖: 2、 創建好後,編譯器會自動創建一些文件,其中會有一個Service1類文 ...
2018-08-23 根據別人的整理
開發Windows服務
一、 VS2012下開發Windows服務()
1、 打開VS2012,新建項目,選擇Windows服務,此處我以開發一個定時自動發送郵件的服務來做介紹,如下圖:
2、 創建好後,編譯器會自動創建一些文件,其中會有一個Service1類文件,該文件是服務的關鍵,我們可以將其重命名,這裡我將其命名為MainService,如下圖:
3、 在MainService的後臺代碼中會自動創建一些方法,包括服務的啟動和停止方法等,如下圖:
4、 將服務啟動時要執行的操作放在OnStart方法中,服務停止時要執行的操作放在OnStop方法中
5、 在MainService.cs設計器中,單擊郵件,選擇選擇添加安裝程式,便會生成一個ProjectInstaller.cs的文件,如圖所示:
6、 設置ProjectInstaller.cs的屬性,切換到屬性設置界面
(1) 選擇serviceInstaller1,並設置相應屬性如下圖所示:
其中:Description屬性用於設置服務安裝之後再服務界面上顯示的描述信息;
DisplayName屬性用於設置服務安裝之後再服務界面上顯示的服務名稱;
ServiceName屬性用於設置服務的名稱,此名稱必須與ServiceBase類的ServiceName屬性設置的名稱一致,該名稱用於系統標識此服務,可以理解成DisplayName為ServiceName的別名;
StartType屬性用於設置服務的啟動方式。
(2) 選擇serviceProcessInster1,設置其屬性如下:
此處主要設置Account屬性,該屬性用來指示運行該服務時的賬戶類型,一般設置為LocalSystem。
7、 到此步一個簡單的windows服務就創建好了,編譯程式會生成一個EmailService.exe的可執行文件,接下來便是安裝服務了。
二、Windows服務的安裝
命令安裝
-------------------------------------此處為自己命令安裝成功------------------------------------------------------------------
服務 安裝:sc create 服務名 binpath= “服務exe文件地址” displayname= "顯示名稱" start= "auto"
服務刪除 :sc delete 服務名
給服務添加描述: sc description 服務名 “具體服務名稱”
------------------------------------以下方法未試-------------------------------------------------------------------
Windows服務的安裝有多種方式,比如可以再cmd下調用命令來安裝,也可以寫一個安裝程式來安裝,此處介紹使用bat批處理來安裝。
1、 安裝Windows服務需要用到InstallUtil.exe程式,該程式位於:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319 .NET4.0
C:\Windows\Microsoft.NET\Framework64\v2.0.50727 .NET2.0
2、 我們可以再批處理命令中直接調用以上目錄中的InstallUtil.exe程式,也可以將該程式拷貝到應用程式的目錄下,此處我選擇獎該程式拷貝到應用程式的目錄下,同時將批處理文件也創建在應用程式的的目錄下,如下圖所示:
3、 註冊服務的批處理命令如下所示:
%~dp0\InstallUtil.exe %~dp0\EmailService.exe
Net Start EmailService --這裡是安裝完成之後啟動服務
sc config EmailService start= auto –這裡是將服務設置為自動啟動
pause
其中%~dp0表示批處理所在的目錄;
4、 註銷服務的批處理命令如下所示:
%~dp0\InstallUtil.exe /u %~dp0\EmailService.exe
pause
5、 啟動服務的批處理命令如下所示:
net start EmailService
pause
6、 停止服務的批處理命令如下所示:
net stop EmailService
pause
7、 當我們運行註冊服務批處理命令之後便會進行服務安裝,如果安裝成功,我們在服務界面將看到該服務,如下圖所示:
8、 安裝服務時的註意事項
(1) 安裝程式InstallUtil.exe的版本必須於創建Windows服務的.NET版本一致;
(2) 如果是Win7以上版本的系統,在運行批處理命令時,應以管理員身份運行;
(3) 如果是Win7以上版本的系統,應特別註意安裝程式和應用程式的路徑,以便能夠正確的寫批處理命令。