Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 36585|Odpoveď: 3

[ASP.NET] C# je Windows služba, ktorá pravidelne vykonáva úlohy

[Kopírovať odkaz]
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#
Zverejnené 8. 5. 2019 10:59:16 |
Ďakujem, že si sa podelil, práve včas, pošli mi to
Zverejnené 22. 6. 2020 14:04:33 |
Túto chybu vždy nahláste
 Prenajímateľ| Zverejnené 7. 9. 2020 15:21:59 |
awclovelin Zverejnené 22.6.2020 o 14:04
Túto chybu vždy nahláste

Spustený príkaz je nesprávny, táto služba nie je nainštalovaná. Ak ho inštalujete klepnutím na príkazový riadok, môžete sa pozrieť na môj ďalší príspevok.
Použitie Topshelf pre plánované vykonávacie úlohy v C#
https://www.itsvse.com/thread-7503-1-1.html

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com