Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Este artigo não se aplica aos serviços hospedados no .NET. Para obter o conteúdo mais recente dos serviços Windows usando Microsoft.Extensions.Hosting.BackgroundService e o modelo do Serviço de Trabalho, consulte:
Os aplicativos do Serviço Windows são baseados em uma classe que herda da System.ServiceProcess.ServiceBase classe. Você substitui os métodos dessa classe e define a funcionalidade para que eles determinem como seu serviço se comporta.
As principais classes envolvidas na criação do serviço são:
System.ServiceProcess.ServiceBase — Você substitui os ServiceBase métodos da classe ao criar um serviço e define o código para determinar como o serviço funciona nessa classe herdada.
System.ServiceProcess.ServiceProcessInstaller e System.ServiceProcess.ServiceInstaller — Você usa essas classes para instalar e desinstalar seu serviço.
Além disso, uma classe nomeada ServiceController pode ser usada para manipular o próprio serviço. Essa classe não está envolvida na criação de um serviço, mas pode ser usada para iniciar e parar o serviço, passar comandos para ele e retornar uma série de enumerações.
Definindo o comportamento do serviço
Na classe de serviço, você substitui as funções de classe base que determinam o que acontece quando o estado do serviço é alterado no Gerenciador de Controle de Serviços. A ServiceBase classe expõe os métodos a seguir, que você pode substituir para adicionar comportamento personalizado.
Método | Substituir para |
---|---|
OnStart | Indique quais ações devem ser executadas quando o serviço começar a ser executado. Você deve escrever código neste procedimento para que seu serviço execute um trabalho útil. |
OnPause | Indique o que deve acontecer quando o serviço estiver em pausa. |
OnStop | Indique o que deve acontecer quando o serviço parar de ser executado. |
OnContinue | Indica o que deve acontecer quando o serviço continua o funcionamento normal depois de ser colocado em pausa. |
OnShutdown | Indique o que deve acontecer antes do sistema ser desligado, se o serviço estiver em execução nesse momento. |
OnCustomCommand | Indique o que deve acontecer quando seu serviço recebe um comando personalizado. Para obter mais informações sobre comandos personalizados, consulte MSDN online. |
OnPowerEvent | Indique como o serviço deve responder quando um evento de gerenciamento de energia é recebido, como uma bateria baixa ou uma operação suspensa. |
Observação
Esses métodos representam estados pelos quais o serviço passa em seu tempo de vida; o serviço faz a transição de um estado para o outro. Por exemplo, o serviço nunca responderá a um comando OnContinue antes que OnStart tenha sido chamado.
Há várias outras propriedades e métodos que são de interesse. Elas incluem:
O Run método na ServiceBase classe. Esse é o ponto de entrada principal para o serviço. Quando você cria um serviço usando o modelo do Serviço Windows, o código é inserido no método do
Main
aplicativo para executar o serviço. Este código tem esta aparência:ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1() }; Run(ServicesToRun);
Dim ServicesToRun() As System.ServiceProcess.ServiceBase ServicesToRun = New System.ServiceProcess.ServiceBase() {New Service1()} System.ServiceProcess.ServiceBase.Run(ServicesToRun)
Observação
Esses exemplos usam uma matriz de tipo ServiceBase, na qual cada serviço que seu aplicativo contém pode ser adicionado e, em seguida, todos os serviços podem ser executados juntos. No entanto, se você estiver criando apenas um único serviço, poderá optar por não usar a matriz e simplesmente declarar um novo objeto herdando ServiceBase e executá-lo. Para obter um exemplo, consulte Como Escrever Serviços Programaticamente.
Uma série de propriedades na ServiceBase classe. Elas determinam quais métodos podem ser chamados no serviço. Por exemplo, quando a propriedade CanStop está definida como
true
, o método OnStop no serviço pode ser chamado. A propriedade CanPauseAndContinue é definida comotrue
, os métodos OnPause e OnContinue podem ser chamados. Ao definir uma dessas propriedades paratrue
, você deverá substituir e definir o processamento dos métodos associados.
Você também pode usar um componente chamado ServiceController para se comunicar e controlar o comportamento de um serviço existente.