Windows Service運行在系統後台,沒有圖形化使用者介面,可以隨系統自動啟動或者系統啟動後手動啟動服務。由於始終運行在後台,給人一種幕後英雄、默默無聞的感覺。但是有時候服務是非常有用的。
例如我們公司做系統整合,在安裝好前段裝置調試沒有問題後,需要把裝置採集的資料即時傳遞到另一公司的資料處理平台中,要求資料即時傳送。思來想去做成Windows Service最合適,這樣只要系統啟動,服務就自動運行,不需要人工幹預。
體繫結構:
1、服務程式
實現系統的業務需求。
2、服務控製程序
控制服務的啟動、停止、暫停、繼續。
3、服務配置程式
配置程式可以安裝服務,向註冊表註冊服務,設定服務的啟動類型、服務的使用者及依存關係等。
清楚了Windows Service的體繫結構以後,建立服務就非常簡單了.
服務建立步驟:
1、在vs中添加項目-Windows Service(eg:Service1)-服務程式部分的開發
2、在Service1設計器上右鍵【添加安裝程式】進行配置
3、安裝服務
步驟1中的設計開發對應體繫結構中的【服務程式】,這裡實現系統想要的功能。
步驟2中添加的安裝程式實際上對象體繫結構中的【服務控製程序】和【服務配置程式】
步驟3中的安裝要用到.NET架構下一個安裝工具 installUtil.exe 安裝服務:installUtil.exe 服務名 ; 卸載服務:installUtil /u 服務名
步驟1中服務程式的開發牽扯調試的問題,個人覺得簡單實用的方法是事先在一個WinForm項目調試成功後將代碼複製到服務.cs下即可。
步驟2在可視化介面上進行配置可以方便對服務的相關屬性和控制資訊進行設定,對簡單的服務控制沒有必要寫代碼,這樣可以提高開發效率。
剛開始寫服務的時候也不怎麼明白,做起來不順手,做完以後感覺自己明白了不少,想做個總結又寫不出多少東西,看來還得繼續學習啦。
一個牛人寫了篇超長的文章帶有樣本的:C#開發Windows Service程式