Ватсон Карли
Шрифт:
Проект Windows Service
Используя новый мастер проектов для C# Windows Services, можно теперь начать создавать службу Windows. Будьте внимательны, чтобы не выбрать проект Web Service.
Службы Web рассматриваются в главе 17.
После нажатия OK для создания приложения Windows Service появится окно проектировщика, как в приложениях Windows Forms, но здесь нельзя вставлять компоненты Windows Forms. Окно проектировщика будет использоваться для добавления других компонентов, таких как счетчики производительности и регистрации событий: Выбор свойств этой службы открывает окно редактора свойств:
Сконфигурируем свойства службы:
□ AutoLog означает, что события автоматически регистрируются для запуска и остановки службы.
□ CanPauseAndContinue, CanShutdown и CanStop означают, что служба может обрабатывать специальные запросы pause, continue, shutdown и stop.
□ ServiceName является именем службы, которое записывается в реестр и используется для управления службой.
□ CanHandlePowerEvent является допустимым параметром для служб, работающих на системе Windows 2000. Мы поговорим о параметрах power позже.
По умолчанию используется имя службы WinService1 независимо от названия проекта. Можно установить только одну службу WinService1. Если возникает ошибка установки во время процесса тестирования, то причина может быть в этом. Проверьте, что имя службы изменено на более подходящее в начале разработки службы.
Изменение этих свойств с помощью редактора свойств задает значения нашего класса, производного из
Мастер создаст код, но мы изменим имя файла на
Класс ServiceBase
Класс
Следующая диаграмма последовательностей показывает взаимодействие SCM — класса
SCM запускает процесс службы. Вначале вызывается метод
Следующий шаг — SCM вызывает зарегистрированный метод
Обработчик реализуется в методе
Рассмотрим сгенерированную основную функцию служебного процесса. В ней объявляются массив
Вот автоматически сгенерированный код: