предговор
В продължение на предишната статия в Windows Task Scheduler, тази статия ще отрази създаването на Windows услуги.
Среда и инструменти
>Система Windows 10
>VS 2017
Текст
1: Създайте ново решение и създайте услуга за Windows. Името е "WindowsServiceDemo.exe”
2: Двойно кликнете върху файла "Service1.cs", кликнете с десен бутон върху празното място – > изберете "Добави инсталатор".
3: В двата генерирани компонента кликнете върху компонента "serviceProcessInstaller1" и във формата за свойства задайте типа акаунт "Account" на "LocalSystem".
4: В двата генерирани компонента кликнете върху компонента "serviceInstaller1", във формата за свойства, задайте съответните свойства и след това запазете.
5: Кликнете с десен бутон върху "Service1.cs" – > изберете "View Code".
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" – > изберете "Run as administrator".
След като инсталацията на услугата приключи. Виждаме, че "Log.txt" файлът записва ред данни на всеки 10 секунди.
Виждаме инсталираните услуги. Бягане – > въведете "services.msc" и въведете.
Спрете услугата сега. Кликнете с десен бутон върху "Uninstall.bat" – > изберете "Run as administrator".
След като услугата бъде деинсталирана. Виждаме, че файлът "Log.txt" съдържа и ред данни, записани върху него.
#Дебъгиране на Windows услуги
Windows услугите не могат да се стартират директно с дебъгване на F5, F10. Как да дебъгвам програмата, ако има аномалия? 1: Първо, използвайте администратора, за да стартирате файла "Install.bat" и оставете програмата да стартира първо.
2: Върнете се във VS и изберете "Debug" в лентата с менюто – > изберете "Прикачи към процеса".
3: В изскачащата форма отметнете "Покажи процесите на всички потребители", намери .exe приложение, което създадохме, и кликни "Прикачи".
4: Прекъснете точката в метода, така че когато работи за определено време, да може да задейства дебъгване.
Епилог
Дебъгването на Windows услуги е много проблематично, понякога програмата е написана в даден проблем и услугата не може да стартира, което прави отстраняването на грешки по-трудно. Обикновено писането на Windows услуги се придружава от конзолно приложение. Дебъгвай го в конзолното приложение и след това го премести в Windows Services. Следващата тема ще опише по-прост начин за създаване на Windows услуга.
Забележка: Пакетните файлове, стартирани и деинсталирани от двете програми, трябва да се изпълняват като администратори. В противен случай ще е грешно.
|