Практическое руководство. Создание службы программным способом
Примечание.
Эта статья не относится к размещенным службам в .NET. Последние сведения об использовании Microsoft.Extensions.Hosting.BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:
Если вы решили не использовать шаблон проекта "Служба Windows", для создания собственной службы вам придется настроить наследование и другие элементы инфраструктуры самостоятельно. Создавая службу программным способом, вам необходимо выполнить несколько действий, которые в случае с шаблоном выполняются автоматически.
Для класса службы необходимо настроить наследование от класса ServiceBase.
Для проекта службы необходимо создать метод
Main
, который определяет запускаемые службы и вызывает для них метод Run.Необходимо переопределить процедуры OnStart и OnStop и добавить код, который они должны выполнять.
Создание службы программным способом
Создайте пустой проект, а затем создайте ссылку на необходимые пространства имен.
В окне Обозреватель решений щелкните правой кнопкой мыши узел Ссылки и выберите пункт Добавить ссылку.
На вкладке .NET Framework найдите System.dll и щелкните Выбрать.
Найдите System.ServiceProcess.dll и щелкните Выбрать.
Щелкните OK.
Добавьте класс и настройте для него наследование от 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.
См. также
- Знакомство с приложениями служб Windows
- Практическое руководство. Создание служб Windows
- Практическое руководство. Добавление установщиков в приложение служб
- Практическое руководство. Запись сведений о службах в журнал
- Пошаговое руководство. Создание приложения служб Windows в конструкторе компонентов