.NET Service Pack 2 (SP2) O Windows Service Pack 2 (SP2) e o .NET Framework SP2 introduziram uma série de alterações importantes que afetaram o funcionamento dos serviços do Windows. Essas mudanças incluem:
* A introdução da API Service Control Manager (SCM).
* A capacidade de especificar o modo de início de um serviço como "Automático", "Manual" ou "Desativado".
* A adição de um novo sinalizador de status de serviço, SERVICE_STOPPED_WAIT_HUNG, que indica que um serviço está demorando mais do que o esperado para ser interrompido.
* A capacidade de especificar a conta sob a qual um serviço deve ser executado.
* A adição de novos recursos de segurança, como a capacidade de restringir o acesso à configuração e aos dados de um serviço.
.NET Service Pack 3 (SP3) O Windows Service Pack 3 (SP3) e o .NET Framework SP3 introduziram uma série de pequenas alterações que afetaram o funcionamento dos serviços do Windows. Essas mudanças incluem:
* A adição de um novo sinalizador de status de serviço, SERVICE_START_PENDING, que indica que um serviço está demorando mais do que o esperado para ser iniciado.
* A capacidade de especificar a ordem em que os serviços são iniciados e interrompidos.
* A adição de novas opções de registro para serviços do Windows.
A tabela a seguir resume as principais diferenças entre o Windows Service Pack 2 e 3:
| Recurso | Pacote de serviços 2 | Pacote de serviços 3 |
|---|---|---|
| API do Gerenciador de Controle de Serviços (SCM) | Introduzido | Sem alterações |
| Modo de início do serviço | Pode ser definido como "Automático", "Manual" ou "Desativado" | Sem alterações |
| Sinalizadores de status de serviço | Adicionado sinalizador SERVICE_STOPPED_WAIT_HUNG | Adicionado sinalizador SERVICE_START_PENDING |
| Conta de serviço | Pode ser especificado | Sem alterações |
| Recursos de segurança | Novos recursos de segurança adicionados, como a capacidade de restringir o acesso à configuração e aos dados de um serviço | Sem alterações |
| Opções de registro | Opções de registro limitadas | Novas opções de registro adicionadas |
| Dependências de serviço | Pode ser especificado | Pode ser especificado de forma mais flexível |
Trabalhando com serviços do Windows em .NET Para criar um serviço Windows em .NET, você deve criar uma classe que derive da classe `ServiceBase`. A classe `ServiceBase` fornece a funcionalidade básica necessária para um serviço do Windows, como a capacidade de iniciar, parar e pausar o serviço.
O código a seguir mostra um exemplo simples de serviço do Windows:
```
usando o sistema;
usando System.ServiceProcess;
namespace MyWindowsService
{
classe pública MyWindowsService:ServiceBase
{
substituição protegida void OnStart(string[] args)
{
// TODO:Adicione código para iniciar o serviço.
}
substituição protegida void OnStop()
{
// TODO:Adicione código para interromper o serviço.
}
}
}
```
Para instalar um serviço do Windows, você deve usar a ferramenta `InstallUtil`. A ferramenta `InstallUtil` está localizada no SDK do .NET Framework. O comando a seguir instala um serviço do Windows:
```
InstallUtil.exe MeuWindowsService.exe
```
Para desinstalar um serviço do Windows, você deve usar a ferramenta `UninstallUtil`. O seguinte comando desinstala um serviço do Windows:
```
UninstallUtil.exe MyWindowsService.exe
```