7. Разработка служб Windows.ppt
- Количество слайдов: 32
Разработка служб Windows Бестужев Никита Евгеньевич Преподаватель
Содержание лекции 1. Что собой представляют службы Windows 2. Разработка службы Windows 2
Что собой представляют службы Windows Службы Windows представляют собой такие приложения, которые могут автоматически запускаться при загрузке операционной системы. Они могут функционировать и без осуществления пользователем интерактивного входа в систему и производить в фоновом режиме какието операции по обработке. 3
Что собой представляют службы Windows Примеры служб: • Простой компонент TCP/IP Services (Службы TCP/IP). • Компонент World Wide Publishing Service (Служба WWW). • Компонент Event Log (Журнал событий). • Компонент Windows Search (Поиск Windows). 4
Что собой представляют службы Windows 5
Что собой представляют службы Windows Для оперирования службой Windows необходимы три программы: • программа службы; • программа для управления службой; • программа для конфигурирования службы. 6
Что собой представляют службы Windows Программы службы: • главная функция; • главная служебная функция; • обработчик. 7
Что собой представляют службы Windows Диспетчер управления службами (Service Control Manager – SCM) представляет собой часть операционной системы, которая взаимодействует со службами 8
Что собой представляют службы Windows 9
Что собой представляют службы Windows Главная функция, главная служебная функция и обработчики: • Главная функция службы представляет собой обычную точку входа в программу, т. е. метод Main(). • Одной из важнейших задач главной служебной функции является регистрация обработчика в SCM. • Работа служб может останавливаться, приостанавливаться и возобновляться, и обработчик должен обязательно быть способен реагировать на все такие события. 10
Что собой представляют службы Windows Классы для служб Windows: • Класс Service. Base является главным классом, от которого должно осуществляться наследование для реализации службы. Этот класс применяется для регистрации службы и ответа на запросы, касающиеся ее запуска и остановки. • Класс Service. Controller позволяет реализовать программу для управления службой. С помощью этого класса можно отправлять службам запросы. • Классы Service. Process. Installer и Servicelnstaller, как не трудно догадаться по их именам, позволяют устанавливать и конфигурировать программы служб. 11
Разработка службы Windows • В Visual Studio шаблон проекта называется С# Windows Services (Служба Windows на С#). • По умолчанию службе назначается имя Service 1, каким бы образом не назывался сам проект. 12
Разработка службы Windows Класс Service. Base: • Класс Service. Base является базовым для всех приложений типа Windows Service, которые разрабатываются с помощью . NET Framework. 13
Разработка службы Windows 14
Разработка службы Windows Главная функция: // Главная точка входа для процесса static void Main() { Service. Base[] Services. To. Run; Services. To. Run = new Service. Base [] { new Quote. Service() }; Service. Base. Run(Services. To. Run); } Процесс инициализация не должен занимать более 30 секунд. 15
Разработка службы Windows Запуск службы: protected override void On. Start(string [] args) { … //Логика сервиса } 16
Разработка службы Windows Методы-обработчики: • On. Pause(). • On. Continue(). • On. Shutdown(). • On. Power. Event(). • On. Custom. Command(). 17
Разработка службы Windows Установка службы: Все службы размещаются в разделе HKEY_LOCAL_MACHINESystemCurrent. Co ntrol. SetServices. Подобная конфигурация может обеспечиваться с помощью классов установщиков из пространства имен System. Service. Process. 18
Разработка службы Windows Программа установки: 19
Разработка службы Windows Класс Installer: using System. Component. Model; using System. Configuration. Install; namespace Win. Services { [Runlnstaller(true)] public partial class Projectlnstaller: Installer { public Projectlnstaller () { Initialize. Component(); } } } 20
Разработка службы Windows Классы Process. Installer и Service. Installer: private void Initialize. Component() { this. service. Process. Installer 1 = new System. Service. Process. Installer(); this. servicelnstaller 1 = new System. Service. Process. Servicelnstaller(); // // service. Process. Installer 1 // this. service. Process. Installer 1. Password = null; this. service. Process. Installer 1. Username = null; 21
Разработка службы Windows Классы Process. Installer и Service. Installer: // servicelnstaller 1 // this. servicelnstaller 1. Service. Name = "Quote. Service"; // // Projectlnstaller // this. Installers. Add. Range(new System. Configuration. Installer[] {this. service. Process. Installer 1, this. servicelnstaller 1}); } 22
Разработка службы Windows Свойства, к которым предоставляется доступ всем службам внутри процесса: Свойство Описание Username, Указывает, от имени какой учетной записи пользователя Password должна запускаться служба в случае установки свойства Account в Service. Account. User. Account Позволяет указывать тип учетной записи службы. Help. Text Представляет собой доступное только для чтения свойство, которое возвращает справочный текст относительно установки имени пользователя и пароля. 23
Разработка службы Windows Свойства класса Servicelnstaller: Свойство Start. Type Описание Свойство Start. Type указывает, должна запускаться вручную или автоматически. Delayed. Auto. Start Оно указывает, должна ли служба запускаться не сразу же после загрузки системы, а немного позже. Это свойство указывает, как должно выглядеть отображаемое пользователям дружественное имя службы. Это свойство указывает, как должно вообще выглядеть имя службы. Display. Name Service. Name служба Services. Dependent. On Это свойство указывает, какой набор служб должен запускаться перед запуском данной службы. 24
Разработка службы Windows На заметку! Изменив имя службы в унаследованном oт Service. Base классе, не забудьте изменить и значение свойства Service. Name в объекте Service. Installer! На заметку! На стадии тестирования лучше устанавливать для свойства Start. Type значение Manual. Тогда при невозможности остановить службу (например, из-за присутствия в ней дефекта) перезапустить систему все равно будет получаться. В случае установки для Start. Type значения Automatic служба будет автоматически запускаться снова даже после перезагрузки системы. Удостоверившись, что служба действительно работает корректно, значение этого свойства можно будет легко поменять. 25
Разработка службы Windows Класс Service. Installer. Dialog: Если установить свойство Account класса Service. Process. Installer в Service. Account. User, а свойства Username и Password – в null, то во время процесса установки на экране будет отображаться диалоговое окно Set Service Login (Установить регистрационную информацию для службы) 26
Разработка службы Windows Утилита installutil: Установка службы: installutil quoteservice. exe Удаление службы: installutil /u quoteservice. exe 27
Разработка службы Windows Мониторинг и управление службами Windows: • Оснастка Services (Службы). • Утилита командной строки net. ехе. • Утилита командной строки sc. exe. 28
Разработка службы Windows 29
Разработка службы Windows Утилита net. exe: net start <имя_службы> – запустить любую необходимую службу net stop <имя_службы> – отправить запрос на останов указанной службы 30
Разработка службы Windows Выявление неисправностей и регистрация событий: • Не отображайте сообщения об ошибках службы в окне сообщений (если только служба не является интерактивной, запускаемой на клиентской системе). Вместо этого следует применять службу регистрации событий, чтобы все ошибки фиксировались в журнале событий. • Запускать службу в отладчике нельзя, но зато отладчик можно подключить к работающему процессу службы. Для этого необходимо сначала открыть решение с исходным кодом службы и расставить точки останова, а затем в меню Debug (Отладка) в Visual Studio выбрать команду Processes (Процессы) и присоединиться к работающему процессу службы. • Для наблюдения за активностью служб можно применять программу Performance Monitor (Монитор производительности). Она позволяет добавлять для службы собственные объекты производительности. В результате можно получить дополнительную информацию для отладки. 31
Спасибо за внимание! 32
7. Разработка служб Windows.ppt