januari 15, 2022

een Windows-Service maken in VB.NET

omgeving:. NET, Visual Basic

Inleiding

u wilt een toepassing schrijven die constant bepaalde bestanden controleert, een logbestand maakt of wat dan ook, en een programma dat constant op de achtergrond draait terwijl de machine bezig is met iets anders. De beste manier om dit te doen was om een Windows-toepassing continu of met een regelmatig interval met het gebruik van de Windows scheduler. Maar er was een groot nadeel: iemand moest inloggen op het systeem om deze applicatie te starten.

dit is niet langer een probleem omdat de beste manier om dit alles te doen is om een Windows-Service Voor Windows 2000/Windows NT aan te maken.

Wat is Windows-Service (voorheen NT-Service genoemd)?

de kernfunctie van een Windows-Service is het uitvoeren van een toepassing op de achtergrond. Een paar dingen die ze anders maken dan een Windows-toepassing zijn dat een Windows-Service wordt gestart voordat een gebruiker zich aanmeldt op het systeem (als het is ingesteld om te starten bij het opstarten). De service kan zo worden ingesteld dat de gebruiker deze handmatig moet starten.

ook Windows-Service heeft zijn eigen proces; vandaar dat het zeer efficiënt werkt. Normaal gesproken heeft een Windows-Service geen gebruikersinterface om de eenvoudige reden dat deze kan worden uitgevoerd, zelfs als er niemand is aangemeld bij het systeem. Dit is geen regel; U kunt nog steeds een Windows-Service met een gebruikersinterface hebben.

in Windows 2000 kunt u alle services weergeven die op uw computer worden uitgevoerd door het Configuratiescherm, beheerprogramma ‘ s te openen en vervolgens op Services te klikken.

een Windows-Service maken in VB.NET

vóór VB.NET, het creëren van een Windows-Service was een hoop werk. Je moest een systeem-niveau procedure die niet erg gemakkelijk was gebruiken, maar dankzij VB.NET dit is heel gemakkelijk geworden. We zullen nu leren hoe je een Windows-Service te maken.

u moet een paar dingen weten voordat we erin duiken. Windows-Service is niet beschikbaar in Windows 95, 98 of ME. Je hebt Windows NT of Windows 2000 nodig om Services uit te voeren.

het voordeel van het gebruik van.NET is dat het framework alle klassen omvat. Dit zal ons helpen bij het maken, installeren en beheren van Windows-Service.

Open uw Visual Studio .NET, maak een nieuw Windows Service Project, die we zullen noemen MyService, en klik vervolgens op OK.

voeg de Timerbesturing toe vanaf de werkbalk op het tabblad componenten. Wijzig in het venster Eigenschappen van Timer1 de Intervaleigenschap in 10000, wat 10 Seconden is.

de broncode

Dubbelklik op het Timer1-besturingselement om een codevenster voor Timer1_Elapsed te openen en typ de volgende code. (Deze code wordt om de 10 seconden uitgevoerd.)

 Dim MyLog As New EventLog() ' create a new event log ' Check if the the Event Log Exists If Not MyLog.SourceExists("MyService") Then MyLog.CreateEventSource("MyService", "Myservice Log") ' Create Log End If MyLog.Source = "MyService" ' Write to the Log MyLog.WriteEntry("MyService Log", "This is log on " & _ CStr(TimeOfDay), _ EventLogEntryType.Information)

Typ de volgende code in de OnStart procedure. (Deze procedure wordt aangeroepen wanneer u de service start, waardoor de timer wordt ingeschakeld.)

 Timer1.Enabled = True

en typ de volgende code in de OnStop procedure. (Deze procedure wordt aangeroepen wanneer u de service stopt, waardoor de timer wordt uitgeschakeld.)

 Timer1.Enabled = False

onze aanvraag is nu klaar, maar er moeten nog een paar dingen gedaan worden voordat we verder gaan. Wanneer we bouwen Deze toepassing, het uitvoerbare gemaakt is niet een Windows-toepassing; vandaar, je kunt niet gewoon klikken en uitvoeren. Het moet worden geïnstalleerd als een service, maar maak je geen zorgen; we hoeven het niet handmatig te doen. VB.Net heeft een mogelijkheid om een installer toe te voegen aan ons programma en vervolgens gebruik maken van een hulpprogramma om de service te installeren.

Installer toevoegen aan het Project

open De Service1.VB design venster en klik met de rechtermuisknop en selecteer vervolgens de optie Installer toevoegen. Dit voegt een installer project, ProjectInstaller.vb, met twee besturingen, Serviceprocess Installer1 en ServiceInstaller1, in ons bestaande project.

Selecteer het ServiceInstaller1-besturingselement en open het eigenschappenvenster. Wijzig de eigenschappen van ServiceName en DisplayName in MyService. (Dit is de naam die u wilt weergeven in de lijst met services in Services-vensters.)

Selecteer het beheer van ServiceProcessInstaller1 en open het eigenschappenvenster. Wijzig de eigenschap Account naar LocalSystem. (Dit moet gespecificeerd worden omdat we dit op onze lokale machine moeten draaien.)

nu is het tijd om de applicatie te bouwen en een uitvoerbaar bestand aan te maken. Selecteer Build Solution in het Build menu om een uitvoerbaar bestand te maken met installatie-instructies voor de service.

de Service installeren

om deze service te installeren, moeten we het InstallUtil-programma gebruiken, dat een.net-hulpprogramma is, om Windows Service te installeren. U kunt dit vinden in map C:\WINNT\Microsoft.NET\Framework\v1.0.3705. (dit kan anders zijn op uw computer, afhankelijk van de versie die u gebruikt.)

u kunt ook het opdrachtvenster.net uitvoeren door Start, Programs, Microsoft Visual Studio. NET, Visual Studio. Net Tools, Visual Studio. NET opdrachtprompt te selecteren. Dit stelt alle vereiste paden voor u.

typ het volgende commando in dat venster: InstallUtil C:\tgol\Myservice\Bin\Myservice.executable. (Dit is het pad voor het uitvoerbare bestand van de dienst die we zojuist hebben gemaakt. Onthoud, VB.NET het uitvoerbare bestand is gemaakt in de Bin-map onder de projectmap. Zorg ervoor dat u dit wijzigt in uw uitvoerbare pad.) Kijk naar het bericht en log in om ervoor te zorgen dat de service correct is geïnstalleerd.

het starten van de Service

het uitvoeren van een service en het starten van een service zijn twee verschillende dingen. Wanneer we de service installeren met InstallUtil, draaien we nu de service, maar moeten het nog starten. Als u de service wilt bekijken en starten, opent u het Configuratiescherm. Open Systeembeheerprogramma ‘ s, klik op Services, zoek MyService en klik met de rechtermuisknop op Start om deze service te starten.

nu is onze service begonnen. Open de logboeken vanuit beheerprogramma ‘ s en klik op het toepassingslogboek om elke 10 seconden de logboeken te zien die door de Service (MyService) zijn gemaakt. (Als u geen Logboeken ziet, klikt u op Vernieuwen . Je moet blijven vernieuwen om de nieuwste event logs te zien.

de Service stoppen

Open het Configuratiescherm, Open beheerprogramma ‘ s, klik op Services, Klik met de rechtermuisknop op MyService en selecteer stoppen om de service te stoppen.

de Service verwijderen

deze procedure is vergelijkbaar met het installeren van de service, maar nu zullen we de InstallUtil uitvoeren met / u Parameter, die de service verwijdert:

InstallUtil / U C:\tgol\Myservice\Bin\Myservice.exe (of uitvoerbaar pad op uw computer). Kijk naar het bericht om te bevestigen dat de service correct is verwijderd.

Tips

  • Stop de service en sluit het servicevenster voordat u de service installeert/verwijdert.
  • altijd verwijderen / installeren als u wijzigingen aanbrengt in de service-toepassing.
  • probeer gebruikersinterface, ingangen en msgbox te vermijden in de Service-toepassing.
  • Open ProjectInstaller.VB, selecteer Servicestaller1 control en open het eigenschappenvenster. Wijzig de eigenschap StartType In automatisch als u de service automatisch wilt starten.

conclusie

Windows-Service wordt vaak over het hoofd gezien. Gebruik Windows-Service in plaats van een standaardtoepassing wanneer u iets op de achtergrond moet controleren of beheren. Het enige nadeel is de installatieprocedure, maar ik wed dat er meer positieve aspecten dan negatieve bij het selecteren van Windows Service dan toepassingen met Windows Scheduler.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.