januar 15, 2022

Opprette En Windows-Tjeneste i VB.NET

Miljø:. NET, Visual Basic

Introduksjon

du vil skrive et program som kontinuerlig overvåker noen filer, lager en logg eller hva som helst, og en som kjørte hele tiden i bakgrunnen mens maskinen er opptatt med å gjøre noe annet. Den beste måten å gjøre dette på var å kjøre Et Windows-program kontinuerlig eller med jevne mellomrom ved Bruk Av Windows scheduler. Men det var en stor ulempe: Noen måtte logge på systemet for å starte dette programmet.

Dette er ikke lenger et problem fordi den beste måten å gjøre alt dette på er å opprette En Windows-Tjeneste For Windows 2000 / Windows Nt.

Hva Er Windows-Tjenesten (Tidligere Kalt Nt-Tjenesten)?

kjernefunksjonen Til En Windows-Tjeneste er å kjøre et program i bakgrunnen. Et par ting som gjør dem forskjellige Fra Et Windows-program er at En Windows-Tjeneste starter før noen bruker logger seg på systemet (hvis det er satt opp til å starte ved oppstart). Tjenesten kan settes opp på en slik måte at det krever at brukeren starter den manuelt.

Windows-Tjenesten har Også sin egen prosess; derfor kjører den veldig effektivt. Normalt Vil En Windows-Tjeneste ikke ha et brukergrensesnitt av den enkle grunn at det kan kjøres selv om ingen er logget på systemet. Dette er ikke en regel; du kan fortsatt ha En Windows-Tjeneste med et brukergrensesnitt.

I Windows 2000 kan du vise alle tjenestene som kjører på datamaskinen, ved å åpne Kontrollpanel, Administrative Verktøy og deretter Klikke Tjenester.

Opprette En Windows-Tjeneste i VB.NET

Før VB.NET, å lage En Windows-Tjeneste var mye arbeid. Du måtte bruke noen systemnivå prosedyre som ikke var veldig lett, men takket være VB.NET dette har blitt veldig enkelt. Vi skal nå lære å lage En Windows-Tjeneste.

du bør vite noen ting før vi dykker inn. Windows-Tjenesten er ikke tilgjengelig I Windows 95, 98 eller ME. Du må ha Windows NT eller Windows 2000 for å kjøre Tjenester.

fordelen med Å bruke. NET er at rammen inneholder alle klassene. Dette skal hjelpe oss med å opprette, installere Og kontrollere Windows-Tjenesten.

Åpne Visual Studio .NET, opprett et Nytt Windows Service-Prosjekt, som Vi skal ringe MyService, og klikk DERETTER OK.

Legg Til Tidtakerkontrollen fra Verktøylinjen i Kategorien Komponenter. I egenskapsvinduet Til Timer1 endrer Du Intervallegenskapen til 10000, som er 10 sekunder.

Kildekoden

Dobbeltklikk på timer1-kontrollen for å åpne et kodevindu For Timer1_Elapsed og skriv inn følgende kode. (Denne koden skal utføres hvert 10. sekund.)

 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)

Skriv inn følgende kode i OnStart-prosedyren. (Denne prosedyren kalles når du starter tjenesten, som skal aktivere timeren.)

 Timer1.Enabled = True

og skriv inn følgende kode I OnStop-prosedyren. (Denne prosedyren kalles når du stopper tjenesten, som skal deaktivere timeren.)

 Timer1.Enabled = False

vår søknad er nå klar, men noen ting må fortsatt gjøres før vi går videre. Når vi bygger dette programmet, er den kjørbare opprettet ikke Et Windows-program; derfor kan du ikke bare klikke og kjøre den. Det må installeres som en tjeneste, men ikke bekymre deg; vi trenger ikke å gjøre det manuelt. VB.Net har et anlegg for å legge til et installasjonsprogram til vårt program og deretter bruke et verktøy for å installere tjenesten.

Legge Til Installasjonsprogram I Prosjektet

Åpne Tjenesten1.vb design vindu og høyreklikk og velg Deretter Legg Til Installasjonsalternativet. Dette legger til et installasjonsprosjekt, ProjectInstaller.vb, med to kontroller, ServiceProcessInstaller1 Og ServiceInstaller1, i vårt eksisterende prosjekt.

Velg ServiceInstaller1-kontrollen og åpne egenskapsvinduet. Endre Egenskapene ServiceName og DisplayName Til MyService. (Dette er navnet du vil skal vises i listen over tjenester I Tjenester windows.)

Velg ServiceProcessInstaller1-kontrollen og åpne egenskapsvinduet. Endre Kontoegenskapen Til LocalSystem. (Dette må spesifiseres fordi vi må kjøre dette på vår lokale maskin.)

nå er det på tide å bygge programmet og lage en kjørbar. Velg Bygg Løsning Fra Bygg-menyen for å opprette en kjørbar fil med installasjonsinstruksjoner for tjenesten.

Installere Tjenesten

for å installere denne tjenesten må vi bruke InstallUtil-programmet, som er ET. NET-verktøy, for å installere Windows-Tjenesten. Du finner dette i mappen C:\WINNT\Microsoft.NET\Framework\v1.0.3705. (Dette kan v re annerledes pa datamaskinen din, avhengig av hvilken versjon du bruker.)

Alternativt kan du kjøre Kommandovinduet. NET Ved å velge Start, Programmer, Microsoft Visual Studio. NET, Visual Studio. NET Verktøy, Visual Studio. NET Ledetekst. Dette setter alle nødvendige baner for deg.

Skriv inn følgende kommando i dette vinduet: InstallUtil C:\tgol\Myservice\Bin\Myservice.exe. (Dette er banen for kjørbar av tjenesten vi nettopp opprettet. Husk, VB.NET opprettet kjørbar I Bin-Mappen under prosjektmappen. Vennligst sørg for at du endrer dette til kjørbar bane.) Vennligst se på meldingen og logg for å sikre at tjenesten er riktig installert.

Starte Tjenesten

Kjøre en tjeneste og starte en tjeneste er to forskjellige ting. Når vi installerer tjenesten Med InstallUtil, kjører vi nå tjenesten, men har ennå ikke startet den. Åpne Kontrollpanelet for å vise og starte tjenesten. Åpne Administrative Verktøy, klikk Tjenester, finn MyService, og høyreklikk Og velg Start for å starte denne tjenesten.

nå har vår tjeneste startet. Åpne Event Viewer Fra Administrative Verktøy og klikk På Programloggen for å se loggene som er opprettet av Tjenesten (MyService) hvert 10.sekund. (Hvis du ikke ser noen logger, klikker Du Oppdater . Du må holde forfriskende for å se de nyeste hendelsesloggene.

Stoppe Tjenesten

Åpne Kontrollpanel, Åpne Administrative Verktøy, klikk Tjenester, høyreklikk MyService, og velg Stopp for å stoppe tjenesten.

Avinstallerer Tjenesten

denne prosedyren ligner på å installere tjenesten, men nå skal vi kjøre InstallUtil med /U-Parameteren, som avinstallerer tjenesten:

InstallUtil / U C:\tgol\Myservice\Bin\Myservice.exe (eller kjørbar bane på datamaskinen). Vennligst se på meldingen for å bekrefte at tjenesten er avinstallert riktig.

Tips

  • Stopp tjenesten og lukk Tjenestevinduet før du installerer/avinstallerer tjenesten.
  • avinstaller/installer alltid Hvis du gjør endringer i tjenesteprogrammet.
  • Prøv å unngå brukergrensesnitt, innganger og msgbox i Tjenesteprogrammet.
  • Åpne ProjectInstaller.vb, velg ServiceInstaller1 kontroll, og åpne egenskapsvinduet. Endre StartType-egenskapen Til Automatisk hvis du vil starte tjenesten automatisk.

Konklusjon

Windows-Tjenesten blir ofte oversett. Bruk Windows-Tjenesten i stedet for et standardprogram når du må overvåke eller administrere noe i bakgrunnen. Den eneste ulempen er installasjonsprosedyren, men jeg vedder på at det er flere positive aspekter da negative når Du velger Windows Service over programmer som kjører Windows Scheduler.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.