Compartilhar via


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

Aplicativos Windows Service baseiam-se em uma classe que herda de System.ServiceProcess.ServiceBase classe. Substituir os métodos dessa classe e define funcionalidade para eles determinar o comportamento do seu serviço.

The main classes involved in service creation are:

Além disso, uma classe nomeada ServiceController pode ser usado para manipular o próprio serviço. This class is not involved in the creation of a service, but can be used to start and stop the service, pass commands to it, and return a series of enumerations.

Defining Your Service's Behavior

In your service class, you override base class functions that determine what happens when the state of your service is changed in the Services Control Manager. O ServiceBase classe expõe os seguintes métodos, você pode substituir para adicionar o comportamento personalizado.

Method

Override to

OnStart

Indicate what actions should be taken when your service starts running. You must write code in this procedure for your service to perform useful work.

OnPause

Indicate what should happen when your service is paused.

OnStop

Indicate what should happen when your service stops running.

OnContinue

Indicate what should happen when your service resumes normal functioning after being paused.

OnShutdown

Indicate what should happen just prior to your system shutting down, if your service is running at that time.

OnCustomCommand

Indicate what should happen when your service receives a custom command. For more information on custom commands, see MSDN online.

OnPowerEvent

Indicate how the service should respond when a power management event is received, such as a low battery or suspended operation.

ObservaçãoObservação

These methods represent states that the service moves through in its lifetime; the service transitions from one state to the next. Por exemplo, você nunca receberá o serviço para responder a uma OnContinue comando antes de OnStart foi chamado.

There are several other properties and methods that are of interest. These include:

  • O Run método sobre o ServiceBase classe. Este é o ponto de entrada principal para o serviço. Quando você cria um serviço usando o modelo Windows Service, o código é inserido em seu aplicativo 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);
    
    ObservaçãoObservaçã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 criando um único serviço, no entanto, você pode escolher para não usar a matriz e simplesmente declarar um novo objeto que herda de ServiceBase e execute o proprietário. For an example, see Como: Gravação de serviços programaticamente.

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

    ObservaçãoObservação

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

Você também pode usar um componente chamado de ServiceController para se comunicar e controlar o comportamento de um serviço existente.

Consulte também

Tarefas

Como: Criar serviços do Windows

Conceitos

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