Практическое руководство. Создание службы программным способом
Если шаблон проекта службы Windows не используется, то для создания службы необходимо вручную определить порядок наследования и другие элементы инфраструктуры. При создании службы программными средствами необходимо выполнять ряд действий, которые в шаблоне выполняются автоматически:
Необходимо сделать класс службы наследником класса ServiceBase.
В проекте службы необходимо создать метод Main, определяющий службы, которые должны запускаться, и вызывающий их метод Run.
Необходимо переопределить процедуры OnStart и OnStop, поместив в них код, который они должны выполнять.
Примечание
Шаблон "Служба Windows" и связанные с ним функциональные возможности недоступны в выпуске Visual Studio Standard Edition.
Чтобы создать службу программными средствами, выполните следующие действия:
Создайте пустой проект и ссылку на необходимые пространства имен следующим образом:
В обозревателе решений щелкните правой кнопкой мыши узел Ссылки и выберите команду Добавить ссылку.
На вкладке .NET Framework найдите System.dll и нажмите кнопку Выбрать.
Перейдите к System.ServiceProcess.dll и снова нажмите кнопку Выбрать.
Нажмите кнопку ОК.
Добавьте класс, сделав его наследником класса ServiceBase:
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
public class UserService1 : 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; }
Создайте в классе метод Main и используйте его для определения службы, которую будет содержать класс; имя класса — userService1:
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
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. }
При необходимости переопределите другие методы и поместите в них код, определяющий действия службы в каждом конкретном случае.
Добавьте установщики, необходимые для приложения службы. Дополнительные сведения см. в разделе Практическое руководство. Добавление установщиков в приложение служб.
Постройте проект, выбрав команду Построить решение в меню Построение.
Примечание
Не следует нажимать кнопку F5 для запуска проекта — таким способом проект службы запустить невозможно.
Создайте проект установки, а также настраиваемые действия, необходимые для установки службы. Пример см. в разделе Пошаговое руководство. Создание приложения служб Windows в конструкторе компонентов.
Установите службу. Дополнительные сведения см. в разделе Практическое руководство. Установка и удаление служб.
См. также
Задачи
Практическое руководство. Создание служб Windows
Практическое руководство. Добавление установщиков в приложение служб
Практическое руководство. Запись сведений о службах в журнал
Пошаговое руководство. Создание приложения служб Windows в конструкторе компонентов
Пошаговое руководство. Создание настраиваемого действия