HOW TO:以程式設計方式撰寫服務
更新:2007 年 11 月
如果您選擇不使用 Windows 服務專案範本,您也可以藉由設定繼承 (Inheritance) 和其他基礎結構項目撰寫自己的服務。當您以程式設計方式建立服務時,必須執行範本會為您處理的幾個步驟:
您必須設定要繼承自 ServiceBase 類別的服務類別。
您必須為用來定義要執行之服務的服務專案建立 Main 方法,並在服務上呼叫 Run 方法。
您必須覆寫 OnStart 和 OnStop 程序,並填入要執行的程式碼。
注意事項: Visual Studio 的標準版中不能使用 Windows 服務範本和相關的功能。
若要以程式設計方式撰寫服務
建立空白專案,並遵循以下步驟,建立必要命名空間的參考:
在 [方案總管] 中,以滑鼠右鍵按一下 [參考] 節點,然後按一下 [加入參考]。
在 [.NET Framework] 索引標籤上,捲動到 [System.dll],並按一下 [選取]。
捲動到 [System.ServiceProcess.dll],並按一下 [選取]。
按一下 [確定]。
加入類別,並將它設定為繼承自 ServiceBase:
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
public class UserService1 : System.ServiceProcess.ServiceBase { }
public class UserService1 extends System.ServiceProcess.ServiceBase { }
加入下列程式碼來設定服務類別:
Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End Sub
public UserService1() { this.ServiceName = "MyService2"; this.CanStop = true; this.CanPauseAndContinue = true; this.AutoLog = true; }
public UserService1() { this.set_ServiceName("MyService2"); this.set_CanStop(true); this.set_CanPauseAndContinue(true); this.set_AutoLog(true); }
建立類別的 Main 方法,並使用它定義類別包含的服務,userService1 為類別的名稱:
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
public static void Main() { System.ServiceProcess.ServiceBase.Run(new UserService1()); }
public static void main() { System.ServiceProcess.ServiceBase.Run(new UserService1()); }
覆寫 OnStart 方法,並定義服務啟動時要執行的處理。
Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End Sub
protected override void OnStart(string[] args) { // Insert code here to define processing. }
protected void OnStart(System.String[] args) { // Insert code here to define processing. }
覆寫其他您希望定義自訂處理的任何方法,並撰寫程式碼來決定服務在每一種情況下應採取的動作。
為服務應用程式加入必要的安裝程式。如需詳細資訊,請參閱 HOW TO:加入 Installer 至服務應用程式。
從 [建置] 功能表中選取 [建置方案],建置您的專案。
注意事項: 請勿按 F5 執行專案,因為您無法以這種方式執行服務專案。
建立安裝專案和自訂動作來安裝您的服務。如需範例,請參閱逐步解說:在元件設計工具中建立 Windows 服務應用程式。
安裝服務。如需詳細資訊,請參閱 HOW TO:安裝及解除安裝服務。
請參閱
工作
逐步解說:在元件設計工具中建立 Windows 服務應用程式