|
|
Zverejnené 27. 4. 2019 17:56:09
|
|
|
|

predhovor
Nadväzujúc na predchádzajúci článok o Windows Task Scheduleri, tento článok zaznamená tvorbu služieb Windows.
Prostredie a nástroje
>Systém Windows 10
>VS 2017
Text
1: Vytvoriť nové riešenie a vytvoriť Windows službu. Názov je "WindowsServiceDemo.exe”
2: Dvojitým kliknutím na súbor "Service1.cs", pravým kliknutím na prázdne miesto – > vyberte "Pridať inštalátor".
3: V dvoch generovaných komponentoch kliknite na komponent "serviceProcessInstaller1" a vo formulári vlastností nastavte typ účtu "Account" na "LocalSystem".
4: V dvoch generovaných komponentoch kliknite na komponent "serviceInstaller1" vo formulári vlastností, nastavte príslušné vlastnosti a potom uložte.
5: Kliknite pravým tlačidlom na "Service1.cs" – > vyberte "Zobraziť kód".
6: V príslušnej metóde zapíšte spracovateľskú logiku. Metóda OnStart(): označuje metódu, ktorá vstupuje pri spustení služby Windows. OnStop(): Ako názov napovedá, toto je spôsob, ako vstúpiť, keď služba skončí. Môžeme napísať časovač, ktorý umožní programu spracovať logiku pri bežnom styku.
7: Vytvorte dva súbory z poznámkového bloku, pomenujte a upravte názvy prípon "Install.bat" a "Uninstall.bat". Poznámka: Názov prípony je .bat. Vlož to do projektu. A zmeňte atribút na "Kopírovať do lokálneho".
8: Dva súbory, ktoré sme práve vytvorili, slúžia na inštaláciu služby a jej odinštalovanie. Teraz napíšte dávkový kód do týchto dvoch súborov a uložte. Otvorte súbor "Install.bat" a napíšte nasledujúci kód
Poznámka: "WindowsServiceDemo.exe" je exe program, ktorý bol práve vygenerovaný. "AServiceTest" je množina "ServiceName" v komponente "serviceInstaller1".
Otvorte súbor "Uninstall.bat" a napíšte nasledujúci kód
9: F6 ho generuje. V adresári projektu "bin\Debug". Kliknite pravým tlačidlom na "Install.bat" – > vyberte "Spustiť ako správca".
Po dokončení inštalácie služby. Vidíme, že súbor "Log.txt" zapíše riadok dát každých 10 sekúnd.
Môžeme vidieť nainštalované služby. Run – > zadajte "services.msc" enter.
Okamžite zastavte službu. Kliknite pravým tlačidlom na "Uninstall.bat" – > vyberte "Spustiť ako správca".
Po odinštalovaní služby. Vidíme, že súbor "Log.txt" má tiež riadok dát zapísaný do seba.
#Ladenie služieb Windows
Windows služby nie je možné spustiť priamo s F5, F10 je ladené. Ako teda ladiť program, ak sa vyskytne nejaká abnormalita? 1: Najprv použite administrátora na spustenie súboru "Install.bat" a nechajte program bežať ako prvý.
2: Vráťte sa do VS a vyberte "Debug" v menu – > vyberte "Pripojiť sa k procesu".
3: V vyskakucom formulári zaškrtnite "Zobraziť všetky procesy používateľov", nájdite .exe aplikáciu, ktorú sme vygenerovali, a kliknite na "Pripojiť".
4: Zlomiť bod v metóde, aby po určitom čase spustila ladenie.
Epilóg
Ladenie Windows služieb je veľmi problematické, niekedy je program napísaný v probléme a služba sa nemôže spustiť, čo sťažuje ladenie. Vo všeobecnosti je písanie Windows služieb sprevádzané konzolovou aplikáciou. Ladiť ho v konzolovej aplikácii a potom ho presunúť do Windows Services. Ďalšia téma opíše jednoduchší spôsob vytvorenia Windows služby.
Poznámka: Dávkové súbory spustené a odinštalované týmito dvoma programami musia byť spustené ako administrátori. Inak to bude nesprávne.
|
Predchádzajúci:Bežné algoritmy na zdieľanie veľkých dát (aplikácie)Budúci:Použitie Topshelf pre plánované vykonávacie úlohy v C#
|