inleiding
Voortbouwend op het vorige artikel over Windows Task Scheduler, zal dit artikel de creatie van Windows-diensten vastleggen.
Omgeving & Hulpmiddelen
>Windows 10-systeem
>VS 2017
Sms
1: Maak een nieuwe oplossing en maak een Windows-service. De naam is "WindowsServiceDemo.exe”
2: Dubbelklik op het bestand "Service1.cs", klik met de rechtermuisknop op de lege ruimte – > selecteer "Installer toevoegen".
3: Klik in de twee gegenereerde componenten op de component "serviceProcessInstaller1" en stel in het eigenschappenformulier het accounttype "Account" in op "LocalSystem".
4: Klik in de twee gegenereerde componenten op de "serviceInstaller1"-component in het eigenschappenformulier, stel de bijbehorende eigenschappen in en sla vervolgens op.
5: Klik met de rechtermuisknop op "Service1.cs" – > selecteer "Code bekijken".
6: Schrijf in de bijbehorende methode de verwerkingslogica. OnStart()-methode: verwijst naar de methode die wordt ingevoerd wanneer de Windows-service start. OnStop(): Zoals de naam al aangeeft, is dit de manier om binnen te komen wanneer de dienst stopt. We kunnen een timer schrijven zodat het programma de logica bij reguliere gemeenschap kan verwerken.
7: Maak twee notitieblokbestanden aan, benoem en wijzig de achtervoegsels namen "Install.bat" en "Uninstall.bat" respectievelijk Opmerking: De achtervoegselnaam is .bat. Plak het in het project. En verander het attribuut naar "Copy to local".
8: De twee bestanden die we zojuist hebben aangemaakt, zijn bedoeld voor het installeren van de service en het verwijderen van de service. Schrijf nu de batchcode naar deze twee bestanden en sla op. Open het "Install.bat"-bestand en schrijf de volgende code
Opmerking: "WindowsServiceDemo.exe" is het exe-programma dat zojuist is gegenereerd. "AServiceTest" is de "ServiceName" die wordt ingezet in de "serviceInstaller1"-component.
Open het bestand "Uninstall.bat" en schrijf de volgende code
9: F6 genereert het. In de projectmap "bin\Debug". Klik met de rechtermuisknop op "Install.bat" – > selecteer "Uitvoeren als administrator".
Zodra de installatie van de service voltooid is. We zien dat het "Log.txt"-bestand elke 10 seconden een regel data schrijft.
We kunnen de geïnstalleerde diensten zien. Run – > voer "services.msc" in.
Stop de service nu. Klik met de rechtermuisknop op "Uninstall.bat" – > selecteer "Uitvoeren als administrator".
Nadat de dienst is verwijderd. We zien dat het "Log.txt"-bestand ook een regel data bevat.
#Windows-service debuggen
Windows-services kunnen niet direct worden gestart met F5, F10 gedebugged. Hoe debug je het programma als er een afwijking is? 1: Gebruik allereerst de beheerder om het "Install.bat"-bestand uit te voeren en laat het programma eerst draaien.
2: Ga terug naar VS en selecteer "Debug" in de menubalk – > selecteer "Toevoegen aan proces".
3: Vink in het pop-upformulier "Alle gebruikersprocessen tonen", zoek de .exe applicatie die we hebben gegenereerd en klik op "Bijvoegen".
4: Breek het punt in de methode, zodat wanneer het een bepaalde tijd draait, het debugging kan triggeren.
Epiloog
Het debuggen van Windows-services is erg problematisch, soms is het programma in een probleem geschreven en kan de service niet starten, wat het debuggen moeilijker maakt. Over het algemeen wordt het schrijven van Windows-services vergezeld door een consoleapplicatie. Debug het in de console-applicatie en verplaats het daarna naar Windows Services. Het volgende onderwerp zal een eenvoudigere manier beschrijven om een Windows-service te maken.
Opmerking: De batchbestanden die door de twee programma's worden gestart en verwijderd, moeten als beheerders worden uitgevoerd. Anders is het onjuist.
|