通過TopShelf快速開發服務程式
我之前在文章中介紹過使用NSSM將exe封裝為服務 ,這種方式我個人是比較喜歡的,一來原始檔案不受服務的開發約束,二來也可以提供簡單的日誌系統、執行緒守護等功能,是我個人比較傾向的行為。但是,有的場景下,可能還是需要原生的服務程式。這個時候,可以利用TopShelf 簡化程式的開發,如下是它的一些優點:
-
Topshelf是.NET平臺的Windows服務框架。Topshelf可以輕鬆建立Windows服務,測試服務,除錯服務,並最終將其安裝到Windows服務控制管理器(SCM)中。
-
Topshelf通過允許開發人員專注於服務邏輯,而不是與.NET框架中的內建服務支援互動的細節。
-
開發人員不需要了解服務類的複雜細節,通過InstallUtil執行安裝,或者瞭解如何將偵錯程式附加到服務以進行故障排除問題。
簡單的來說,TopShelf是一個Nuget庫,是直接嵌入到程式中的。它簡化了服務的構建過程,只需要簡單的配置,就可以吧我們的控制檯程式封裝成一個服務。並且它具有兩種行為:
-
開發的時候可以通過控制檯程式直接執行,除錯
-
部署的時候可以通過install引數將其安裝成windows服務。
關於TopShelf的具體使用方法,網上已經有許多比較詳盡的教程,這裡列舉了兩篇,本文這裡就不在累述了: