Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 36585|Antwoord: 3

[ASP.NET] C# is een Windows-service die taken regelmatig uitvoert

[Link kopiëren]
Geplaatst op 27-04-2019 17:56:09 | | | |


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.









Vorig:Veelvoorkomende algoritmen voor het delen van big data (applicaties)
Volgend:Het gebruik van Topshelf voor C# geplande uitvoeringstaken
Geplaatst op 08-05-2019 10:59:16 |
Bedankt voor het delen, precies op tijd, stuur het naar mij
Geplaatst op 22-06-2020 14:04:33 |
Meld deze fout altijd
 Huisbaas| Geplaatst op 07-09-2020 15:21:59 |

Het commando dat draait is fout, deze dienst is niet geïnstalleerd. Als je het installeert door op de commandoregel te tikken, kun je mijn volgende bericht raadplegen.
Het gebruik van Topshelf voor C# geplande uitvoeringstaken
https://www.itsvse.com/thread-7503-1-1.html

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com