Compartilhar via


Arquitetura de Programação de Aplicativos de Serviço

Os aplicativos Windows serviço são baseados em uma classe que herda a partir de System.ServiceProcess.ServiceBase classe. Você substituir métodos desta classe e definir funcionalidade para eles determinar como seu serviço funciona.

As classes principais envolvidas na criação de serviço são:

Além disso, uma classe nomeada ServiceController pode ser usado para manipular o próprio serviço. Esta classe não está envolvida na criação do serviço, mas pode ser usada para iniciar e parar o serviço, passar-lhe comandos, e retornar uma série de enumerações.

Definindo o Comportamento do Seu Serviço

Na classe de seu serviço, você substitui funções classe base que determinam o que acontece quando o estado do seu serviço é alterado no Gerenciador de Controle de Serviços (Services Control Manager).The ServiceBase classe expõe os métodos a seguir, que você pode substituir para adicionar o comportamento personalizado.

Método

Substitua para

OnStart

Indicar quais ações devem ser executadas quando o serviço começa a ser executado.Você deve escrever código neste procedimento para o serviço realizar um trabalho útil.

OnPause

Indicar o que deve acontecer quando o serviço for pausado.

OnStop

Indicar o que deve acontecer quando o serviço parar a execução.

OnContinue

Indicar o que deve acontecer quando o serviço continua o funcionamento normal após ser pausado.

OnShutdown

Indicar o que deve acontecer antes de ser seu sistema desligado, se seu serviço estiver sendo executado neste momento.

OnCustomCommand

Indicar o que acontece quando o serviço recebe um comando personalizado.Para obter mais informações sobre comandos personalizados, consulte MSDN Online.

OnPowerEvent

Indicar como o serviço deve responder quando um evento de gerenciamento de energia é recebido, como uma bateria fraca ou operação de suspensão.

Observação:

Esses métodos representam estados através dos quais o serviço muda no seu tempo de vida; as transições do serviço de um estado para o próximo.Por exemplo, você nunca irá obter o serviço para responder a uma OnContinue comando antes OnStart foi chamado.

Há várias outras propriedades e métodos que são de interesse.Eles incluem:

  • The Run método na ServiceBase classe. Este é o ponto de entrada principal para o serviço.Quando você cria um serviço usando o modelo de serviço do Windows, o código é inserido no Main método para executar o serviço. Esse código tem esta aparência:

    Dim ServicesToRun() As System.ServiceProcess.ServiceBase
    ServicesToRun = New System.ServiceProcess.ServiceBase() _
        {New Service1()}
    System.ServiceProcess.ServiceBase.Run(ServicesToRun)
    
         System.ServiceProcess.ServiceBase[] ServicesToRun;
            ServicesToRun = new System.ServiceProcess.ServiceBase[] 
              { new Service1() };
            System.ServiceProcess.ServiceBase.Run(ServicesToRun);
    
            System.ServiceProcess.ServiceBase ServicesToRun[];
            ServicesToRun = new System.ServiceProcess.ServiceBase[] 
              { new Service1() };
            System.ServiceProcess.ServiceBase.Run(ServicesToRun);
    
    Observação:

    Esses exemplos usam uma matriz do tipo ServiceBase, no qual cada serviço que seu aplicativo contém pode ser adicionado e, em seguida, todos os serviços podem ser executados juntos. Se você estiver apenas criando um único serviço, no entanto, você pode optar por não usar a matriz e simplesmente declarar um novo objeto que herda de ServiceBase e, em seguida, executá-lo. Para um exemplo, consulte Como: Escrever serviços programaticamente.

  • Uma série de propriedades sobre o ServiceBase classe. Eles determinam quais métodos podem ser chamados em seu serviço.Por exemplo, quando o CanStop propriedade é conjunto para true, o OnStop método no seu serviço pode ser chamado. Quando o CanPauseAndContinue propriedade estiver definida como true, o OnPause e OnContinue métodos podem ser chamados. Quando você define uma dessas propriedades para true, você deve substituir e conjunto processamento para os métodos associados.

    Observação:

    O serviço deve substituir pelo menos OnStart e OnStop para ser útil.

Você também pode usar um componente denominado o ServiceController para se comunicar com e controlar o comportamento de um serviço existente. Para obter informações sobre como usar ServiceController, consulte Monitorando Windows Services.

Consulte também

Tarefas

Como: Criar Windows Services

Conceitos

Introdução aos Aplicativos de Serviço do Windows

Outros recursos

Monitorando Windows Services