Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 36585|Отговор: 3

[ASP.NET] C# е Windows услуга, която изпълнява задачи редовно

[Копирай линк]
Публикувано в 27.04.2019 г. 17:56:09 ч. | | | |


предговор

В продължение на предишната статия в 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 услуга.


Забележка: Пакетните файлове, стартирани и деинсталирани от двете програми, трябва да се изпълняват като администратори. В противен случай ще е грешно.









Предишен:Общи алгоритми за споделяне на големи данни (приложения)
Следващ:Използването на Topshelf за планирани задачи за изпълнение на C#
Публикувано в 8.05.2019 г. 10:59:16 ч. |
Благодаря, че сподели, точно навреме, изпрати ми го
Публикувано в 22.06.2020 г. 14:04:33 ч. |
Винаги докладвайте тази грешка
 Хазяин| Публикувано в 7.09.2020 г. 15:21:59 ч. |
awclovelin Публикувано на 22.06.2020 14:04
Винаги докладвайте тази грешка

Командата, която се изпълнява, е грешна, тази услуга не е инсталирана. Ако го инсталирате, като докоснете командния ред, можете да се обърнете към следващата ми публикация.
Използването на Topshelf за планирани задачи за изпълнение на C#
https://www.itsvse.com/thread-7503-1-1.html

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com