Практическое руководство. Создание служб Windows
Обновлен: Ноябрь 2007
При создании службы можно воспользоваться шаблоном проекта Visual Studio Служба Windows. Этот шаблон выполнит большую часть работы автоматически, ссылаясь на необходимые классы и пространства имен, устанавливая наследование от базового класса служб и переопределяя несколько наиболее вероятных методов.
Примечание. |
---|
Шаблон Служба Windows и связанные с ним функциональные возможности недоступны в выпуске Visual Studio Standard Edition. |
Для создания функциональной службы необходимо выполнить следующий минимум действий:
Задать значение свойства ServiceName;
Создать установщики, необходимые для приложения службы;
Для определения поведения службы переопределить и написать код методов OnStart и OnStop;
Следующим (после добавления установщиков в приложение) этапом является создание проекта установки, который установит откомпилированные файлы проекта и запустит установщики, необходимые для установки службы. Для создания полного проекта установки в него необходимо сначала добавить выходные файлы проекта служебного приложения, а затем требуемое для установки службы настраиваемое действие. Дополнительные сведения о проектах установки см. в разделе Проекты установки. Дополнительные сведения о настраиваемых действиях содержатся в разделе Пошаговое руководство. Создание настраиваемого действия.
Чтобы создать приложение службы Windows, выполните следующие действия:
Создайте проект Служба Windows.
Примечание. Указания по созданию службы без использования шаблона см. в разделе Практическое руководство. Создание службы программным способом.
В окне Свойства службы задайте значение свойства ServiceName.
Примечание. Значение свойства ServiceName всегда должно соответствовать имени, указанному в классах установщиков. При изменении этого свойства необходимо также менять значение свойства ServiceName в классах установщика.
Задайте любое из следующих свойств для определения порядка работы службы.
Свойство
Параметр
Чтобы указать, что служба может принимать запросы на остановку работы, используйте значение True; для предотвращения остановки службы — значение false.
Используйте значение True для указания того, что служба может принимать уведомления о завершении работы компьютера, на котором она работает; в этом случае сможет вызываться процедура OnShutdown.
Чтобы указать, что служба может принимать запросы на приостановку или продолжение работы, используйте значение True; для предотвращения приостановки и последующего продолжения работы службы используйте значение false.
Чтобы указать, что служба может обрабатывать уведомления об изменении состояния питания компьютера, используйте значение True, а для предотвращения получения уведомлений о таких изменениях — значение false.
Для внесения информационных записей в журнал событий приложения при выполнении службой действия используйте значение True; для отключения этой функции — значение false. Дополнительные сведения см. в разделе Практическое руководство. Запись сведений о службах в журнал.
Примечание.По умолчанию свойство AutoLog имеет значение true.Примечание. Если свойство CanStop или CanPauseAndContinueимеет значение false, то соответствующие команды меню Диспетчера управления службами, отвечающие за остановку, приостановку и продолжение работы службы, будут недоступны.
Откройте редактор кода и напишите нужный код обработки процедур OnStart и OnStop.
Переопределите все методы, в которых нужно реализовать новую функциональность.
Добавьте установщики, необходимые для приложения службы. Дополнительные сведения см. в разделе Практическое руководство. Добавление установщиков в приложение служб.
Постройте проект, выбрав команду Построить решение в меню Построение.
Примечание. Не следует нажимать кнопку F5 для запуска проекта — таким способом проект службы запустить невозможно.
Установите службу. Дополнительные сведения см. в разделе Практическое руководство. Установка и удаление служб.
См. также
Задачи
Практическое руководство. Создание службы программным способом
Практическое руководство. Добавление установщиков в приложение служб
Практическое руководство. Запись сведений о службах в журнал
Практическое руководство. Запуск служб
Практическое руководство. Назначение службам контекста безопасности
Практическое руководство. Установка и удаление служб
Пошаговое руководство. Создание приложения служб Windows в конструкторе компонентов