作法:以程式設計方式撰寫服務
注意
本文不適用於 .NET 中的託管服務。 如需使用 Microsoft.Extensions.Hosting.BackgroundService 和背景工作角色服務範本之 Windows 服務的最新內容,請參閱:
如果您選擇不使用 Windows 服務專案範本,則可以藉由自行設定繼承和其他基礎結構元素來撰寫自己的服務。 當您以程式設計方式建立服務時,必須執行範本會為您處理的數個步驟:
您必須將服務類別設定為繼承自 ServiceBase 類別。
您必須建立服務專案的
Main
方法,以定義要執行的服務並在其上呼叫 Run 方法。
以程式設計方式撰寫服務
依照下列步驟來建立空白的專案,並建立必要命名空間的參考:
在 [方案總管] 中,以滑鼠右鍵按一下 [參考] 節點,然後按一下 [加入參考]。
在 [.NET Framework] 索引標籤上,捲動到 [System.dll],然後按一下 [選取]。
捲動到 [System.ServiceProcess.dll],然後按一下 [選取]。
按一下 [確定]。
加入類別,並將它設定為繼承自 ServiceBase:
public class UserService1 : ServiceBase { }
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
加入下列程式碼來設定您的服務類別:
public UserService1() { ServiceName = "MyService2"; CanStop = true; CanPauseAndContinue = true; AutoLog = true; }
Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End Sub
為類別建立
Main
方法,並使用它來定義類別將包含的服務;userService1
是類別的名稱:public static void Main() { ServiceBase.Run(new UserService1()); }
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
覆寫 OnStart 方法,並定義您想要在啟動服務時發生的任何處理。
protected override void OnStart(string[] args) { // Insert code here to define processing. }
Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End Sub
覆寫您想要定義自訂處理的其他任何方法,並撰寫程式碼來判斷服務應該在每個案例中採取的動作。
為服務應用程式加入必要的安裝程式。 如需詳細資訊,請參閱如何:將安裝程式加入服務應用程式。
從 [建置] 功能表選取 [建置方案],以建置您的專案。
注意
請勿按 F5 執行您的專案,您無法透過這個方法來執行服務專案。
建立安裝專案和自訂動作來安裝您的服務。 如需範例,請參閱逐步解說:在元件設計工具中建立 Windows 服務應用程式。
安裝服務。 如需詳細資訊,請參閱 How to: Install and Uninstall Services。