.NET Service Pack 2 (SP2)
Windows Service Pack 2 (SP2) och .NET Framework SP2 introducerade ett antal viktiga ändringar som påverkade hur Windows-tjänsterna fungerar. Dessa ändringar inkluderar:
* Introduktionen av Service Control Manager (SCM) API.
* Möjligheten att ange en tjänsts startläge som "Automatisk", "Manuell" eller "Inaktiverad".
* Tillägget av en ny tjänstestatusflagga, SERVICE_STOPPED_WAIT_HUNG, som indikerar att en tjänst tar längre tid än förväntat att stoppa.
* Möjligheten att ange vilket konto en tjänst ska köras under.
* Tillägg av nya säkerhetsfunktioner, såsom möjligheten att begränsa åtkomsten till en tjänsts konfiguration och data.
.NET Service Pack 3 (SP3)
Windows Service Pack 3 (SP3) och .NET Framework SP3 introducerade ett antal mindre ändringar som påverkade hur Windows-tjänsterna fungerar. Dessa ändringar inkluderar:
* Tillägget av en ny tjänststatusflagga, SERVICE_START_PENDING, som indikerar att en tjänst tar längre tid än förväntat att starta.
* Möjligheten att ange i vilken ordning tjänster startas och stoppas.
* Tillägg av nya loggningsalternativ för Windows-tjänster.
Följande tabell sammanfattar de viktigaste skillnaderna mellan Windows Service Pack 2 och 3:
| Funktion | Service Pack 2 | Service Pack 3 |
|---|---|---|
| Service Control Manager (SCM) API | Introducerad | Ingen förändring |
| Servicestartläge | Kan ställas in på "Automatisk", "Manuell" eller "Inaktiverad" | Ingen förändring |
| Flaggor för tjänststatus | Tillagd SERVICE_STOPPED_WAIT_HUNG flagga | Lade till SERVICE_START_PENDING flagga |
| Servicekonto | Kan specificeras | Ingen förändring |
| Säkerhetsfunktioner | Nya säkerhetsfunktioner har lagts till, såsom möjligheten att begränsa åtkomsten till en tjänsts konfiguration och data | Ingen förändring |
| Loggningsalternativ | Begränsade loggningsmöjligheter | Nya loggningsalternativ har lagts till |
| Serviceberoende | Kan specificeras | Kan specificeras på ett mer flexibelt sätt |
Arbeta med Windows-tjänster i .NET
För att skapa en Windows-tjänst i .NET måste du skapa en klass som härrör från klassen `ServiceBase`. Klassen `ServiceBase` tillhandahåller den grundläggande funktionalitet som krävs för en Windows-tjänst, såsom möjligheten att starta, stoppa och pausa tjänsten.
Följande kod visar ett enkelt exempel på en Windows-tjänst:
```
använder System;
använder System.ServiceProcess;
namnutrymme MyWindowsService
{
public class MyWindowsService :ServiceBase
{
skyddad åsidosättning void OnStart(sträng[] args)
{
// TODO:Lägg till kod för att starta tjänsten.
}
skyddad åsidosättning void OnStop()
{
// TODO:Lägg till kod för att stoppa tjänsten.
}
}
}
```
För att installera en Windows-tjänst måste du använda verktyget `InstallUtil`. Verktyget `InstallUtil` finns i .NET Framework SDK. Följande kommando installerar en Windows-tjänst:
```
InstallUtil.exe MyWindowsService.exe
```
För att avinstallera en Windows-tjänst måste du använda verktyget "UninstallUtil". Följande kommando avinstallerar en Windows-tjänst:
```
AvinstalleraUtil.exe MyWindowsService.exe
```