Практическое руководство. Создание службы программным способом

Обновлен: Ноябрь 2007

Если шаблон проекта службы Windows не используется, то для создания службы необходимо вручную определить порядок наследования и другие элементы инфраструктуры. При создании службы программными средствами необходимо выполнять ряд действий, которые в шаблоне выполняются автоматически:

  • Необходимо сделать класс службы наследником класса ServiceBase.

  • В проекте службы необходимо создать метод Main, определяющий службы, которые должны запускаться, и вызывающий их метод Run.

  • Необходимо переопределить процедуры OnStart и OnStop, поместив в них код, который они должны выполнять.

    76477d2t.alert_note(ru-ru,VS.90).gifПримечание.

    Шаблон "Служба Windows" и связанные с ним функциональные возможности недоступны в выпуске Visual Studio Standard Edition.

Чтобы создать службу программными средствами, выполните следующие действия:

  1. Создайте пустой проект и ссылку на необходимые пространства имен следующим образом:

    1. В обозревателе решений щелкните правой кнопкой мыши узел Ссылки и выберите команду Добавить ссылку.

    2. На вкладке .NET Framework найдите System.dll и нажмите кнопку Выбрать.

    3. Перейдите к System.ServiceProcess.dll и снова нажмите кнопку Выбрать.

    4. Нажмите OK.

  2. Добавьте класс, сделав его наследником класса ServiceBase:

    Public Class UserService1
       Inherits System.ServiceProcess.ServiceBase
    End Class
    
    public class UserService1 : System.ServiceProcess.ServiceBase  
    {
    }
    
    public class UserService1 extends System.ServiceProcess.ServiceBase
    {
    }
    
  3. Чтобы настроить класс службы, добавьте следующий код:

    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);
        }
    
  4. Создайте в классе метод 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());
        }
    
  5. Переопределите метод 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.
        }
    
  6. При необходимости переопределите другие методы и поместите в них код, определяющий действия службы в каждом конкретном случае.

  7. Добавьте установщики, необходимые для приложения службы. Дополнительные сведения см. в разделе Практическое руководство. Добавление установщиков в приложение служб.

  8. Постройте проект, выбрав команду Построить решение в меню Построение.

    76477d2t.alert_note(ru-ru,VS.90).gifПримечание.

    Не следует нажимать кнопку F5 для запуска проекта — таким способом проект службы запустить невозможно.

  9. Создайте проект установки, а также настраиваемые действия, необходимые для установки службы. Пример см. в разделе Пошаговое руководство. Создание приложения служб Windows в конструкторе компонентов.

  10. Установите службу. Дополнительные сведения см. в разделе Практическое руководство. Установка и удаление служб.

См. также

Задачи

Практическое руководство. Создание служб Windows

Практическое руководство. Добавление установщиков в приложение служб

Практическое руководство. Запись сведений о службах в журнал

Пошаговое руководство. Создание приложения служб Windows в конструкторе компонентов

Пошаговое руководство. Создание настраиваемого действия

Основные понятия

Знакомство с приложениями служб Windows

Проекты установки