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

Примечание.

Эта статья не относится к размещенным службам в .NET. Последние сведения об использовании Microsoft.Extensions.Hosting.BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:

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

Предупреждение

Шаблон проекта "Службы Windows" в экспресс-выпуске Visual Studio отсутствует.

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

  • Задайте свойство ServiceName.

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

  • Переопределите и задайте код для методов OnStart и OnStop для настройки режимов поведения службы.

Создание приложения службы Windows

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

    Примечание.

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

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

    Задание свойства ServiceName.

    Примечание.

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

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

    Свойство Параметр
    CanStop True, чтобы указать, что служба может принимать запросы на останов работы; false для предотвращения останова службы.
    CanShutdown True, чтобы указать, что служба хочет принимать уведомления о выключении компьютера, на котором она работает, позволяя ему вызывать процедуру OnShutdown.
    CanPauseAndContinue True, чтобы указать, что служба может принимать запросы на приостановку или возобновление выполнения; false для предотвращения приостановки и возобновления работы службы.
    CanHandlePowerEvent True, чтобы указать, что служба может обрабатывать уведомления об изменениях состояния питания компьютера; false, чтобы не сообщать службе об этих изменениях.
    AutoLog True для внесения информационных записей в журнал событий приложения, когда служба выполняет некоторое действие; false для отключения этой функции. Дополнительные сведения см. в статье Практическое руководство. Запись сведений о службах в журнал. Примечание. По умолчанию свойство AutoLog имеет значение true.

    Примечание.

    Когда CanStop или CanPauseAndContinue имеют значение false, диспетчер служб будет отключать пункты меню, отвечающие за остановку, приостановку или возобновление работы службы.

  4. Откройте редактор кода и введите данные для выполнения операций для процедур OnStart и OnStop.

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

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

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

    Примечание.

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

  8. Установите службу. Для получения дополнительной информации см. How to: Install and Uninstall Services.

См. также