Porady: programowane pisanie usług
Uwaga
Ten artykuł nie dotyczy hostowanych usług na platformie .NET. Aby uzyskać najnowszą zawartość w usługach systemu Windows przy użyciu Microsoft.Extensions.Hosting.BackgroundService i szablonie usługi procesu roboczego, zobacz:
Jeśli zdecydujesz się nie używać szablonu projektu Usługi systemu Windows, możesz napisać własne usługi, konfigurując dziedziczenie i inne elementy infrastruktury samodzielnie. Podczas programowego tworzenia usługi należy wykonać kilka kroków, które szablon w przeciwnym razie obsłuży:
Należy skonfigurować klasę usługi, aby dziedziczyła z ServiceBase klasy .
Musisz utworzyć metodę
Main
dla projektu usługi, która definiuje usługi do uruchamiania i wywołuje metodę Run na nich.Należy zastąpić OnStart procedury i OnStop i wypełnić dowolny kod, który ma zostać uruchomiony.
Aby programowo napisać usługę
Utwórz pusty projekt i utwórz odwołanie do niezbędnych przestrzeni nazw, wykonując następujące kroki:
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł Odwołania i kliknij polecenie Dodaj odwołanie.
Na karcie .NET Framework przewiń do System.dll i kliknij pozycję Wybierz.
Przewiń do System.ServiceProcess.dll i kliknij pozycję Wybierz.
Kliknij przycisk OK.
Dodaj klasę i skonfiguruj ją do dziedziczenia z ServiceBaseklasy :
public class UserService1 : ServiceBase { }
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
Dodaj następujący kod, aby skonfigurować klasę usługi:
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
Utwórz metodę
Main
dla klasy i użyj jej do zdefiniowania usługi, która będzie zawierać klasa;userService1
jest nazwą klasy:public static void Main() { ServiceBase.Run(new UserService1()); }
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
Zastąpij metodę i zdefiniuj wszelkie operacje przetwarzania, które chcesz wykonać po uruchomieniu OnStart usługi.
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
Zastąpi wszelkie inne metody, dla których chcesz zdefiniować przetwarzanie niestandardowe, i napisz kod w celu określenia akcji, które usługa powinna wykonać w każdym przypadku.
Dodanie niezbędnych instalatorów dla aplikacji usługi. Aby uzyskać więcej informacji, zobacz How to: Add Installers to Your Service Application (Instrukcje: dodawanie instalatorów do aplikacji usługi).
Skompiluj projekt, wybierając pozycję Kompiluj rozwiązanie z menu Kompilacja .
Uwaga
Nie naciskaj klawisza F5, aby uruchomić projekt — w ten sposób nie można uruchomić projektu usługi.
Utwórz projekt instalacyjny i akcje niestandardowe, aby zainstalować usługę. Aby zapoznać się z przykładem, zobacz Przewodnik: tworzenie aplikacji usługi systemu Windows w Projektant składników.
Zainstaluj usługę. Aby uzyskać więcej informacji, zobacz Instrukcje: instalowanie i odinstalowywanie usług.