oprettelse af en Vinduer Service i VB.NET
miljø:. net, Visual Basic
introduktion
du vil skrive et program, der konstant overvåger nogle filer, opretter en log eller hvad som helst, og en der løb konstant i baggrunden, mens maskinen har travlt med at gøre noget andet. Den bedste måde at gøre dette på var at køre en Vinduer applikation kontinuerligt eller med et regelmæssigt interval med brug af vinduer scheduler. Men der var en stor ulempe: nogen måtte logge på systemet for at starte denne applikation.
dette er ikke længere et problem, fordi den bedste måde at gøre alt dette på er at oprette en Vinduer Service til vinduer 2000/vinduer NT.
Hvad er NT Service (tidligere kaldet NT Service)?
kernefunktionen i en tjeneste er at køre et program i baggrunden. Et par ting, der gør dem forskellige fra en Vinduer program er, at en vinduer tjeneste starter før nogen bruger logger på systemet (hvis det er blevet sat op til at starte ved opstart). Tjenesten kan konfigureres på en sådan måde, at den kræver, at brugeren starter den manuelt.
også, vinduer Service har sin egen proces; derfor, det kører meget effektivt. Normalt vil en tjeneste ikke have en brugergrænseflade af den simple grund, at den kan køres, selvom ingen er logget på systemet. Dette er ikke en regel; Du kan stadig have en Microsoft-tjeneste med en brugergrænseflade.
i vinduer 2000 kan du se alle de tjenester, der kører på din computer, ved at åbne Kontrolpanel, Administrative værktøjer og derefter klikke på tjenester.
oprettelse af en Vinduer Service i VB.NET
før VB.NET, at skabe en Vinduer Service var en masse arbejde. Du var nødt til at bruge en procedure på systemniveau, der ikke var meget let, men takket være VB.NET dette er blevet meget let. Vi skal nu lære at oprette en Vinduer Service.
du skal vide et par ting, før vi dykker ind. Vinduer Service er ikke tilgængelig i vinduer 95, 98, eller mig. Du skal have vinduer NT eller vinduer 2000 at køre tjenester.
fordelen ved at bruge.NET er, at rammen inkorporerer alle klasser. Dette skal hjælpe os med at oprette, installere og kontrollere vinduer Service.
Åbn dit Visual Studio .NET, oprette en ny vinduer service projekt, som vi skal kalde MyService, og klik derefter på OK.
Tilføj Timerkontrollen fra værktøjslinjen under fanen komponenter. I egenskabsvinduet for Timer1 skal du ændre Intervalegenskaben til 10000, hvilket er 10 sekunder.
kildekoden
Dobbeltklik på timer1-kontrolelementet for at åbne et kodevindue for Timer1_Elapsed og skriv følgende kode. (Denne kode udfø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 følgende kode i OnStart-proceduren. (Denne procedure kaldes, når du starter tjenesten, som skal aktivere timeren.)
Timer1.Enabled = True
og skriv følgende kode i OnStop-proceduren. (Denne procedure kaldes, når du stopper tjenesten, som skal deaktivere timeren.)
Timer1.Enabled = False
vores ansøgning er nu klar, men et par ting skal stadig gøres, før vi går videre. Når vi bygger denne applikation, er den eksekverbare oprettede ikke et vindue-program; derfor kan du ikke bare klikke og køre den. Det skal installeres som en service, men rolig; vi behøver ikke at gøre det manuelt. VB.Net har mulighed for at tilføje et installationsprogram til vores program og derefter bruge et værktøj til at installere tjenesten.
tilføjelse af installationsprogram til projektet
Åbn Tjenesten1.VB design vindue og højreklik og vælg derefter Tilføj installationsprogram mulighed. Dette tilføjer et installationsprojekt, ProjectInstaller.vb, med to kontroller, ServiceProcessInstaller1 og ServiceInstaller1, i vores eksisterende projekt.
Vælg kontrolelementet ServiceInstaller1, og åbn egenskabsvinduet. Skift egenskaber for servicenavn og DisplayName til MyService. (Dette er det navn, du vil have vist på listen over tjenester i Servicevinduer.)
Vælg kontrolelementet ServiceProcessInstaller1, og åbn egenskabsvinduet. Skift kontoegenskaben til Lokalsystem. (Dette skal specificeres, fordi vi skal køre dette på vores lokale maskine.)
nu er det tid til at bygge programmet og oprette en eksekverbar. Vælg Build Solution i menuen Build for at oprette en eksekverbar med installationsinstruktioner til tjenesten.
installation af tjenesten
for at installere denne service skal vi bruge InstallUtil-programmet, som er et.net-værktøj, til at installere vinduer Service. Du kan finde dette i mappen C:\WINNT\Microsoft.NET\Framework\v1.0.3705. (dette kan være anderledes på din computer, afhængigt af den version, du bruger.)
Alternativt kan du køre kommandovinduet.net ved at vælge Start, Programmer, Microsoft Visual Studio. net, Visual Studio. net Tools, Visual Studio. net Kommandoprompt. Dette sætter alle de nødvendige stier til dig.
Skriv følgende kommando i det vindue: InstallUtil C:\tgol\Myservice\Bin\Myservice.eks. (Dette er stien til den eksekverbare af den service, vi lige har oprettet. Husk, VB.NET oprettet den eksekverbare i Bin-mappen under projektmappen. Sørg for at ændre dette til din eksekverbare sti.) Se venligst på meddelelsen og log for at sikre, at tjenesten er installeret korrekt.
start af tjenesten
kørsel af en tjeneste og start af en tjeneste er to forskellige ting. Når vi installerer tjenesten med InstallUtil, kører vi nu tjenesten, men har endnu ikke startet den. For at se og starte tjenesten skal du åbne Kontrolpanel. Åbn Administrative værktøjer, klik på tjenester, Find MyService, og højreklik og vælg Start for at starte denne tjeneste.
nu er vores service startet. Åbn Begivenhedsviseren fra Administrative værktøjer, og klik på Programloggen for at se logfilerne oprettet af tjenesten (MyService) hvert 10.sekund. (Hvis du ikke kan se nogen logfiler, skal du klikke på Opdater . Du bliver nødt til at holde forfriskende at se de nyeste event logs.
stop af tjenesten
Åbn Kontrolpanel, Åbn Administrative værktøjer, klik på tjenester, Højreklik på MyService, og vælg Stop for at stoppe tjenesten.
afinstallation af tjenesten
denne procedure svarer til installation af tjenesten, men nu skal vi køre InstallUtil med / U-parameteren, som afinstallerer tjenesten:
InstallUtil / U C:\tgol\Myservice\Bin\Myservice.eks (eller eksekverbar sti på din computer). Se venligst på meddelelsen for at bekræfte, at tjenesten er afinstalleret korrekt.
Tips
- Stop tjenesten, og luk servicevinduet, før du installerer/afinstallerer tjenesten.
- Afinstaller/installer altid, hvis du foretager ændringer i serviceprogrammet.
- prøv at undgå brugergrænseflade, input og msgboks i Service-applikationen.
- Åbn ProjectInstaller.vb, vælg ServiceInstaller1 control, og åbn egenskabsvinduet. Skift egenskaben StartType til automatisk, hvis du vil starte tjenesten automatisk.
konklusion
vinduer Service er ofte overset. Brug tjenesten i stedet for et standardprogram, når du skal overvåge eller administrere noget i baggrunden. Den eneste ulempe er installationsproceduren, men jeg vedder på, at der er mere positive aspekter end negative, når du vælger vinduer Service over applikationer, der kører vinduer Scheduler.