Поделиться через


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

Замечание

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

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

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

Шаблон проекта служб Windows недоступен в выпуске Express Visual Studio.

Как минимум, чтобы создать функциональную службу, необходимо:

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

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

  • Переопределите и укажите код для методов OnStart и OnStop, чтобы настроить поведение вашего сервиса.

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

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

    Замечание

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

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

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

    Замечание

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

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

    Недвижимость Setting
    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. Установите службу. Дополнительные сведения см. в разделе "Практическое руководство. Установка и удаление служб".

См. также