Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Windows Service Pack 2 (SP2) a .NET Framework SP2 zaviedli množstvo dôležitých zmien, ktoré ovplyvnili fungovanie služieb systému Windows. Tieto zmeny zahŕňajú:
* Zavedenie rozhrania Service Control Manager (SCM) API.
* Možnosť určiť režim spustenia služby ako „Automatický“, „Manuálny“ alebo „Vypnutý“.
* Pridanie nového príznaku stavu služby SERVICE_STOPPED_WAIT_HUNG, ktorý naznačuje, že zastavenie služby trvá dlhšie, ako sa očakávalo.
* Možnosť určiť účet, pod ktorým má služba bežať.
* Pridanie nových bezpečnostných funkcií, ako je napríklad možnosť obmedziť prístup ku konfigurácii a údajom služby.
.NET Service Pack 3 (SP3)
Windows Service Pack 3 (SP3) a .NET Framework SP3 zaviedli množstvo menších zmien, ktoré ovplyvnili fungovanie služieb systému Windows. Tieto zmeny zahŕňajú:
* Pridanie nového príznaku stavu služby SERVICE_START_PENDING, ktorý naznačuje, že spustenie služby trvá dlhšie, než sa očakávalo.
* Možnosť určiť poradie, v ktorom sa služby spúšťajú a zastavujú.
* Pridanie nových možností protokolovania pre služby Windows.
Nasledujúca tabuľka sumarizuje hlavné rozdiely medzi Windows Service Pack 2 a 3:
| Funkcia | Service Pack 2 | Service Pack 3 |
|---|---|---|
| Service Control Manager (SCM) API | Zavedené | Žiadna zmena |
| Režim spustenia servisu | Dá sa nastaviť na "Automaticky", "Manuálne" alebo "Vypnuté" | Žiadna zmena |
| Príznaky stavu služby | Pridaný príznak SERVICE_STOPPED_WAIT_HUNG | Pridaný príznak SERVICE_START_PENDING |
| Servisný účet | Dá sa špecifikovať | Žiadna zmena |
| Bezpečnostné prvky | Pridané nové bezpečnostné funkcie, ako napríklad možnosť obmedziť prístup ku konfigurácii a údajom služby | Žiadna zmena |
| Možnosti protokolovania | Obmedzené možnosti protokolovania | Pridané nové možnosti protokolovania |
| Závislosti služieb | Dá sa špecifikovať | Môže byť špecifikovaný flexibilnejším spôsobom |
Práca so službami Windows v .NET
Ak chcete vytvoriť službu Windows v .NET, musíte vytvoriť triedu, ktorá je odvodená od triedy `ServiceBase`. Trieda `ServiceBase` poskytuje základnú funkcionalitu, ktorá sa vyžaduje pre službu Windows, ako napríklad možnosť spustiť, zastaviť a pozastaviť službu.
Nasledujúci kód zobrazuje jednoduchý príklad služby Windows:
```
pomocou systému;
pomocou System.ServiceProcess;
menný priestor MyWindowsService
{
verejná trieda MyWindowsService :ServiceBase
{
chránené prepísanie void OnStart(string[] args)
{
// TODO:Pridajte kód na spustenie služby.
}
chránené prepísanie void OnStop()
{
// TODO:Pridajte kód na zastavenie služby.
}
}
}
```
Ak chcete nainštalovať službu Windows, musíte použiť nástroj `InstallUtil`. Nástroj `InstallUtil` sa nachádza v .NET Framework SDK. Nasledujúci príkaz nainštaluje službu Windows:
```
InstallUtil.exe MyWindowsService.exe
```
Ak chcete odinštalovať službu Windows, musíte použiť nástroj `UninstallUtil`. Nasledujúci príkaz odinštaluje službu Windows:
```
UninstallUtil.exe MyWindowsService.exe
```