.Net開發Windows服務


2018-08-23 根據別人的整理

開發Windows服務

一、 開發Windows服務

1 新建項目,選擇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服務的安裝

命令安裝

-------------------------------------此處為自己命令安裝成功------------------------------------------------------------------

管理員身份運行cmd

服務 安裝:sc create 服務名 binpath= “D:\ 服務exe文件地址\需要安裝的服務.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以上版本的系統,應特別注意安裝程序和應用程序的路徑,以便能夠正確的寫批處理命令。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM