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:
System.ServiceProcess.ServiceBase— Você substitui métodos da ServiceBase ao criar um serviço de classe e define o código para determinar como as herdadas de seu serviço funciona nesta classe.
System.ServiceProcess.ServiceProcessInstallere System.ServiceProcess.ServiceInstaller — você usa essas classes para instalar e desinstalar seu serviço.
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 |
---|---|
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. |
|
Indicate what should happen when your service is paused. |
|
Indicate what should happen when your service stops running. |
|
Indicate what should happen when your service resumes normal functioning after being paused. |
|
Indicate what should happen just prior to your system shutting down, if your service is running at that time. |
|
Indicate what should happen when your service receives a custom command. For more information on custom commands, see MSDN online. |
|
Indicate how the service should respond when a power management event is received, such as a low battery or suspended operation. |
Observaçã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çã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çã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