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

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

При создании службы можно воспользоваться шаблоном проекта Visual Studio Служба Windows. Этот шаблон выполнит большую часть работы автоматически, ссылаясь на необходимые классы и пространства имен, устанавливая наследование от базового класса служб и переопределяя несколько наиболее вероятных методов.

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

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

Для создания функциональной службы необходимо выполнить следующий минимум действий:

  • Задать значение свойства ServiceName;

  • Создать установщики, необходимые для приложения службы;

  • Для определения поведения службы переопределить и написать код методов OnStart и OnStop;

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

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

  1. Создайте проект Служба Windows.

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

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

  2. В окне Свойства службы задайте значение свойства ServiceName.

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

    Значение свойства ServiceName всегда должно соответствовать имени, указанному в классах установщиков. При изменении этого свойства необходимо также менять значение свойства ServiceName в классах установщика.

  3. Задайте любое из следующих свойств для определения порядка работы службы.

    Свойство

    Параметр

    CanStop

    Чтобы указать, что служба может принимать запросы на остановку работы, используйте значение True; для предотвращения остановки службы — значение false.

    CanShutdown

    Используйте значение True для указания того, что служба может принимать уведомления о завершении работы компьютера, на котором она работает; в этом случае сможет вызываться процедура OnShutdown.

    CanPauseAndContinue

    Чтобы указать, что служба может принимать запросы на приостановку или продолжение работы, используйте значение True; для предотвращения приостановки и последующего продолжения работы службы используйте значение false.

    CanHandlePowerEvent

    Чтобы указать, что служба может обрабатывать уведомления об изменении состояния питания компьютера, используйте значение True, а для предотвращения получения уведомлений о таких изменениях — значение false.

    AutoLog

    Для внесения информационных записей в журнал событий приложения при выполнении службой действия используйте значение True; для отключения этой функции — значение false. Дополнительные сведения см. в разделе Практическое руководство. Запись сведений о службах в журнал.

    9k985bc9.alert_note(ru-ru,VS.90).gifПримечание.
    По умолчанию свойство AutoLog имеет значение true.
    9k985bc9.alert_note(ru-ru,VS.90).gifПримечание.

    Если свойство CanStop или CanPauseAndContinueимеет значение false, то соответствующие команды меню Диспетчера управления службами, отвечающие за остановку, приостановку и продолжение работы службы, будут недоступны.

  4. Откройте редактор кода и напишите нужный код обработки процедур OnStart и OnStop.

  5. Переопределите все методы, в которых нужно реализовать новую функциональность.

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

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

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

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

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

См. также

Задачи

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

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

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

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

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

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

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

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

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