Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 36585|Odpověď: 3

[ASP.NET] C# je služba pro Windows, která pravidelně vykonává úlohy

[Kopírovat odkaz]
Zveřejněno 27.04.2019 17:56:09 | | | |


předmluva

Navazujíc na předchozí článek o Windows Task Scheduler, tento článek zaznamená vznik služeb pro Windows.
Prostředí a nástroje

>Systém Windows 10

>VS 2017

Text

1: Vytvořit nové řešení a vytvořit službu pro Windows. Jméno je "WindowsServiceDemo.exe






2: Dvojitým kliknutím na soubor "Service1.cs", pravým kliknutím na prázdné místo > výběrem "Přidat instalátor".







3: Ve dvou generovaných komponentách klikněte na komponentu "serviceProcessInstaller1" a ve formuláři vlastností nastavte typ účtu "Account" na "LocalSystem".





4: V dvou generovaných komponentách klikněte na komponentu "serviceInstaller1", ve formuláři vlastností nastavte odpovídající vlastnosti a poté uložit.




5: Klikněte pravým tlačítkem na "Service1.cs" – > vyberte "Zobrazit kód".






6: V odpovídající metodě zapíšete zpracovatelskou logiku. Metoda OnStart(): označuje metodu, která vstupuje při spuštění služby Windows. OnStop(): Jak název napovídá, toto je způsob, jak vstoupit, když služba končí. Můžeme napsat časovač, který umožní programu zpracovat logiku při běžném styku.






7: Vytvořte dva soubory z poznámkového bloku, pojmenujte a upravte názvy přípon "Install.bat" a "Uninstall.bat". Poznámka: Název přípony je .bat. Vložte to do projektu. A změňte atribut na "Copy to local".



8: Dva soubory, které jsme právě vytvořili, slouží k instalaci služby a jejímu odinstalování. Nyní napište dávkový kód do těchto dvou souborů a uložte.
Otevřete soubor "Install.bat" a napište následující kód
Poznámka: "WindowsServiceDemo.exe" je exe program, který byl právě vygenerován. "AServiceTest" je množina "ServiceName" v komponentě "serviceInstaller1".

Otevřete soubor "Uninstall.bat" a napište následující kód


9: F6 ho generuje. V adresáři projektu "bin\Debug". Klikněte pravým tlačítkem na "Install.bat" – > vyberte "Spustit jako správce".



Jakmile bude instalace služby dokončena. Vidíme, že soubor "Log.txt" zapíše řádek dat každých 10 sekund.


Můžeme vidět instalované služby.
Run – > zadejte "services.msc" enter.



Okamžitě ukončit službu. Klikněte pravým tlačítkem na "Uninstall.bat" – > vyberte "Spustit jako správce".



Po odinstalaci služby. Vidíme, že soubor "Log.txt" má také řádek dat, který je do něj zapsaný.



#Ladění služeb Windows

Windows služby nelze spustit přímo s laděným F5, F10. Jak tedy ladit program, pokud je tam nějaká abnormalita?
1: Nejprve použijte správce k spuštění souboru "Install.bat" a nechte program běžet jako první.

2: Vraťte se do VS a vyberte "Debug" v menu – > vyberte "Připojit se k procesu".





3: V vyskakovacím okně zaškrtněte "Zobrazit všechny procesy uživatelů", najděte .exe aplikaci, kterou jsme vytvořili, a klikněte na "Přiložit".




4: Zlomit bod v metodě, aby při jejím běhu po určitou dobu mohla spustit ladění.



Epilog

Ladění Windows služeb je velmi problematické, někdy je program napsán v problému a služba se nemůže spustit, což ztěžuje ladění. Obecně je psaní Windows služeb doprovázeno konzolovou aplikací. Ladit to v konzolové aplikaci a pak to přesunout do Windows Services. Další téma popíše jednodušší způsob, jak vytvořit službu pro Windows.


Poznámka: Dávkové soubory spuštěné a odinstalované oběma programy musí být spuštěny jako správci. Jinak to bude nesprávné.









Předchozí:Běžné algoritmy pro sdílení velkých dat (aplikace)
Další:Použití Topshelf pro plánované úkoly v C#
Zveřejněno 08.05.2019 10:59:16 |
Děkuji, že jste se podělil, právě včas, pošlete mi to
Zveřejněno 22.06.2020 14:04:33 |
Vždy tuto chybu nahlaste
 Pronajímatel| Zveřejněno 07.09.2020 15:21:59 |

Spuštěný příkaz je špatný, tato služba není nainstalovaná. Pokud ho instalujete klepnutím na příkazovou řádku, můžete se podívat na můj další příspěvek.
Použití Topshelf pro plánované úkoly v C#
https://www.itsvse.com/thread-7503-1-1.html

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com