如何開發 Windows Service 使用 .Net 及 Topshelf

2020-07-04

從來沒有想過自行開發 Windows Service,一直以來都是在伺服器上直接執行 batch 或者經由工作排程器的方式執行想要達成的服務,但偶然契機下學習到 Windows Service 可以得到更多的便利性,同時藉由安裝 Topshelf 僅需要以 Console 開發上做延伸即可,非常實用。

logo

說明

為什麼要需要 Windows Service

  • 可以控制執行服務的角色與身分 (user, account)
  • 作業系統啟用後會服務自動啟用,不需要仰賴使用者的登入
  • 可以做為其他系統的依賴項目
  • 可以將腳本包裝進入 Windows OS
  • 可以遠端的控制腳本

使用 Topshelf 的好處

讓 Topshelf 負責 Service 的安裝、移除、管理,開發者可以專注在 Service 本身的開發工作。

專案實作

  1. 藉由 Visual Studio 新增 Console專案
  2. Nuget Install Topshelf

Nuget - Topshelf

  1. 設計服務
  2. 用 Topshelf 包裝服務的類別與執行、停止
  3. Cli Install Topshelf 至 OS
  4. 驗證如何遠端控制 Service

待實作 😋😋😋

參考資料