如何:建立 Windows 服務

備註

本文不適用於 .NET 中的託管服務。 如需使用 Microsoft.Extensions.Hosting.BackgroundService 和 Worker Service 範本之 Windows 服務的最新內容,請參閱:

建立服務時,可以使用一個叫 做 Windows Service 的 Visual Studio 專案範本。 這個範本會自動幫你完成大部分工作,包括參考適當的類別和命名空間、設定服務繼承自基底類別,以及覆寫你可能會想覆寫的幾個方法。

警告

Windows 服務專案範本在 Visual Studio Express 版中無法取得。

至少,要打造一個功能齊全的服務,你必須:

  • 設定 ServiceName 屬性。

  • 為你的服務應用建立必要的安裝程式。

  • 覆蓋並指定 OnStart 和 OnStop 方法的程式碼,以自訂您的服務行為方式。

建立 Windows 服務應用程式

  1. 建立 一個 Windows 服務 專案。

    備註

    關於不使用範本撰寫服務的說明,請參見如何:以 程式化方式撰寫服務。

  2. 在 屬性 視窗中,設定 ServiceName 該屬性用於你的服務。

    設定 ServiceName 屬性。

    備註

    ServiceName 屬性的值必須始終與安裝程式類別中記錄的名稱相符。 如果你更改了這個屬性,也必須更新 ServiceName 安裝類別的屬性。

  3. 請設定以下任一屬性,以決定你的服務將如何運作。

    房產 Setting
    CanStop True 以表示服務將接受停止運行的請求; false 以防止服務被中斷。
    CanShutdown True 用於表示服務希望在其所在電腦關閉時收到通知,使其能夠呼叫 OnShutdown 方法。
    CanPauseAndContinue True 以表示服務將接受暫停或恢復運行的請求; false 以防止服務暫停後繼續。
    CanHandlePowerEvent True 以表示該服務能處理電腦電源狀態變更的通知; false 以防止服務被通知這些變更。
    AutoLog True 當您的服務執行動作時,將資訊條目寫入應用程式事件日誌; false 以停用此功能。 欲了解更多資訊,請參閱 如何:記錄服務資訊。 註: 預設情況下, AutoLog 設定為 true。

    備註

    當 CanStop 或 CanPauseAndContinue 設定為 false時, 服務控制管理員 會停用相應的選單選項,以停止、暫停或繼續服務。

  4. 進入程式碼編輯器,為OnStart和OnStop程序填入你想要的處理。

  5. 為你想定義功能的任何其他方法覆蓋既有方法。

  6. 為你的服務應用添加必要的安裝程式。 如需詳細資訊,請參閱 如何:將安裝程式新增至您的服務應用程式。

  7. 請從建置選單中選擇建置解決方案來建立你的專案。

    備註

    不要按 F5 來執行專案——你無法用這種方式執行服務專案。

  8. 安裝服務。 欲了解更多資訊,請參閱 「如何安裝與卸載服務」。

另請參閱