標籤:ref 2.0 iss account 路徑 發送 exe 標識 後台
一、 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服務的安裝
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以上版本的系統,應特別注意安裝程式和應用程式的路徑,以便能夠正確的寫批處理命令。
原文轉載:http://blog.csdn.net/huangcailian/article/details/42237013
vs下開發windows服務程式