.NET Servicepack 2 (SP2)
Windows Service Pack 2 (SP2) en .NET Framework SP2 introduceerden een aantal belangrijke wijzigingen die van invloed waren op de manier waarop Windows-services werken. Deze veranderingen omvatten:
* De introductie van de Service Control Manager (SCM) API.
* De mogelijkheid om de startmodus van een service op te geven als "Automatisch", "Handmatig" of "Uitgeschakeld".
* De toevoeging van een nieuwe servicestatusvlag, SERVICE_STOPPED_WAIT_HUNG, die aangeeft dat het langer duurt dan verwacht om een service te stoppen.
* De mogelijkheid om het account op te geven waaronder een dienst moet draaien.
* De toevoeging van nieuwe beveiligingsfuncties, zoals de mogelijkheid om de toegang tot de configuratie en gegevens van een dienst te beperken.
.NET Service Pack 3 (SP3)
Windows Service Pack 3 (SP3) en .NET Framework SP3 introduceerden een aantal kleine wijzigingen die van invloed waren op de manier waarop Windows-services werken. Deze veranderingen omvatten:
* De toevoeging van een nieuwe servicestatusvlag, SERVICE_START_PENDING, die aangeeft dat het langer duurt dan verwacht om een service te starten.
* De mogelijkheid om de volgorde op te geven waarin services worden gestart en gestopt.
* De toevoeging van nieuwe logopties voor Windows-services.
De volgende tabel vat de belangrijkste verschillen tussen Windows Service Pack 2 en 3 samen:
| Kenmerk | Servicepack 2 | Servicepack 3 |
|---|---|---|
| Service Control Manager (SCM)-API | Geïntroduceerd | Geen verandering |
| Servicestartmodus | Kan worden ingesteld op "Automatisch", "Handmatig" of "Uitgeschakeld" | Geen verandering |
| Servicestatusvlaggen | SERVICE_STOPPED_WAIT_HUNG vlag toegevoegd | SERVICE_START_PENDING vlag toegevoegd |
| Serviceaccount | Kan worden gespecificeerd | Geen verandering |
| Beveiligingsfuncties | Er zijn nieuwe beveiligingsfuncties toegevoegd, zoals de mogelijkheid om de toegang tot de configuratie en gegevens van een dienst te beperken | Geen verandering |
| Logboekopties | Beperkte logmogelijkheden | Nieuwe logopties toegevoegd |
| Serviceafhankelijkheden | Kan worden gespecificeerd | Kan flexibeler worden gespecificeerd |
Werken met Windows Services in .NET
Om een Windows-service in .NET te maken, moet u een klasse maken die is afgeleid van de klasse `ServiceBase`. De klasse `ServiceBase` biedt de basisfunctionaliteit die vereist is voor een Windows-service, zoals de mogelijkheid om de service te starten, stoppen en pauzeren.
De volgende code toont een eenvoudig voorbeeld van een Windows-service:
```
gebruik maken van systeem;
met behulp van System.ServiceProcess;
naamruimte MijnWindowsService
{
openbare klasse MyWindowsService:ServiceBase
{
beschermde overschrijving void OnStart(string[] args)
{
// TODO:Voeg code toe om de service te starten.
}
beschermde overschrijving void OnStop()
{
// TODO:Voeg code toe om de service te stoppen.
}
}
}
```
Om een Windows-service te installeren, moet u het hulpprogramma `InstallUtil` gebruiken. Het hulpprogramma `InstallUtil` bevindt zich in de .NET Framework SDK. Met de volgende opdracht installeert u een Windows-service:
```
InstallUtil.exe MijnWindowsService.exe
```
Om een Windows-service te verwijderen, moet u de tool `UninstallUtil` gebruiken. Met de volgende opdracht wordt een Windows-service verwijderd:
```
UninstallUtil.exe MijnWindowsService.exe
``` |