|
|
Опубликовано 27.04.2019 17:56:09
|
|
|
|

предисловие
В продолжение предыдущей статьи о планировщике задач Windows в этой статье будет зафиксировано создание сервисов Windows.
Окружающая среда и инструменты
>Система Windows 10
>VS 2017
СМС
1: Создайте новое решение и создайте сервис для Windows. Имя — "WindowsServiceDemo.exe”
2: Дважды кликните по файлу «Service1.cs», правой кнопкой мыши по пустому месту — > выберите «Добавить установщик».
3: В двух сгенерированных компонентах нажмите на компонент «serviceProcessInstaller1», а в форме свойств установить тип аккаунта «Account» на «LocalSystem».
4: В двух сгенерированных компонентах нажмите на компонент «serviceInstaller1», в форме свойств установите соответствующие свойства и затем сохраните.
5: Кликните правой кнопкой мыши на «Service1.cs» — > выберите «Просмотреть код».
6: В соответствующем методе запишите логику обработки. Метод OnStart(): относится к методу, который входит при запуске сервиса Windows. OnStop(): Как следует из названия, это способ войти в систему при прекращении сервиса. Мы можем написать таймер, который позволит программе обрабатывать логику при обычном половом акте.
7: Создайте два файла блокнота, назовите и измените суффиксы «Install.bat» и «Uninstall.bat» соответственно. Примечание: Имя суффикса — .bat. Вставьте его внутрь проекта. И измените атрибут на «Скопировать в локальное».
8: Два файла, которые мы только что создали, предназначены для установки сервиса и удаления сервиса. Теперь запишите пакетный код в эти два файла и сохраните. Откройте файл «Install.bat» и запишите следующий код
Примечание: «WindowsServiceDemo.exe» — это только что сгенерированная программа exe. "AServiceTest" — это набор "ServiceName" в компоненте "serviceInstaller1".
Откройте файл "Uninstall.bat" и напиши следующий код
9: F6 генерирует его. В каталоге проекта "bin\Debug". Кликните правой кнопкой мыши на «Install.bat» — > выберите «Запустить от имени администратора».
После завершения установки сервиса. Мы видим, что файл «Log.txt» записывает строку данных каждые 10 секунд.
Мы видим установленные сервисы. Run — > введите "services.msc" и введите.
Прекратите обслуживание сейчас. Кликните правой кнопкой мыши на «Uninstall.bat» — > выберите «Запустить от имени администратора».
После того как сервис будет деинсталиран. Мы видим, что в файле «Log.txt» также записана строка данных.
#Отладка сервисов Windows
Сервисы Windows нельзя запускать напрямую с отладкой F5, F10. Так как же отладить программу, если есть аномалия? 1: Прежде всего, используйте администратора для запуска файла «Install.bat» и дайте программе запуститься первым.
2: Вернитесь в VS и выберите «Отладка» в строке меню — > выберите «Прикрепить к процессу».
3: В всплывающей форме отметьте «Показать процессы всех пользователей», найдите .exe приложение, которое мы создали, и нажмите «Прикрепить».
4: Разбить точку в методе, чтобы при работе определённого времени запускалась отладка.
Эпилог
Отладка сервисов Windows очень проблематична — иногда программа написана в конкретной задаче, и сервис не может запуститься, что усложняет отладку. Обычно написание сервисов для Windows сопровождается консольным приложением. Отладьте его в консольном приложении, а затем перенесите в Windows Services. В следующей теме будет описан более простой способ создания сервиса для Windows.
Примечание: пакетные файлы, запущенные и удалённые обеими программами, должны запускаться как администраторы. Иначе это будет неверно.
|
Предыдущий:Общие алгоритмы для обмена большими данными (приложения)Следующий:Использование Topshelf для запланированных задач выполнения на C#
|