Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe ServiceBase

Fornece uma classe base para um serviço que existirá como parte de um aplicativo de serviço. A classe ServiceBase deve ser herdada ao criar uma nova classe de serviço.

Namespace:  System.ServiceProcess
Assembly:  System.ServiceProcess (em System.ServiceProcess.dll)

public class ServiceBase : Component

O tipo ServiceBase expõe os membros a seguir.

  NomeDescrição
Método públicoServiceBaseCria uma nova instância da classe de ServiceBase .
Superior

  NomeDescrição
Propriedade públicaAutoLogIndica se as Iniciar, parar, pausar, retomar e comandos no log de eventos.
Propriedade públicaCanHandlePowerEventObtém ou define um valor que indica se o serviço pode tratar notificações de alteração de status de poder do computador.
Propriedade públicaCanHandleSessionChangeEventObtém ou define um valor que indica se o serviço pode controlar os eventos de alteração de sessão recebidos de uma sessão do terminal server.
Propriedade públicaCanPauseAndContinueObtém ou define um valor que indica se o serviço pode ser pausado e retomado.
Propriedade protegidaCanRaiseEventsObtém um valor indicando se o componente pode disparar um evento. (Herdado de Component.)
Propriedade públicaCanShutdownObtém ou define um valor que indica se o serviço deve ser notificado quando o sistema está sendo fechado.
Propriedade públicaCanStopObtém ou define um valor que indica se o serviço pode ser interrompido quando ele foi iniciado.
Propriedade públicaContainerObtém o IContainer que contém o Component. (Herdado de Component.)
Propriedade protegidaDesignMode Obtém um valor que indica se o Component está em modo de design. (Herdado de Component.)
Propriedade públicaEventLogObtém um log de eventos que você pode usar para gravar a notificação de chamadas de comando do serviço, como Iniciar e parar, o log de eventos de aplicativo.
Propriedade protegidaEvents Obtém a lista de manipuladores de eventos que estão conectados a este Component. (Herdado de Component.)
Propriedade públicaExitCodeObtém ou define o código de saída para o serviço.
Propriedade protegidaServiceHandleObtém o identificador de controle de serviço para o serviço.
Propriedade públicaServiceNameObtém ou define o nome curto usado para identificar o serviço do sistema.
Propriedade públicaSite Obtém ou define o ISite do Component. (Herdado de Component.)
Superior

  NomeDescrição
Método públicoCreateObjRefCria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject.)
Método públicoDispose() Libera todos os recursos usados pelo Component. (Herdado de Component.)
Método protegidoDispose(Boolean)Descartará recursos (diferente da memória) usados por ServiceBase. (Substitui Component.Dispose(Boolean).)
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalize Libera os recursos não gerenciados e executa outras operações de limpeza antes do Component ser recuperados pela coleta de lixo. (Herdado de Component.)
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetLifetimeService Recupera o objeto atual de serviço de vida útil que controla a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método protegidoGetService Retorna um objeto que representa um serviço fornecido pelo Component ou por seu Container. (Herdado de Component.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoInitializeLifetimeService Obtém um objeto de serviço de tempo de vida para controlar a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método protegidoMemberwiseClone()Cria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoMemberwiseClone(Boolean) Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject.)
Método protegidoOnContinueQuando implementada em uma classe derivada, OnContinue executa quando um comando de continuação é enviado ao serviço pelo Gerenciador de Controle de Serviços (SCM). Especifica ações a serem tomadas quando um serviço continua a operação normal após ser pausado.
Método protegidoOnCustomCommandQuando implementada em uma classe derivada, OnCustomCommand executa quando o Gerenciador de Controle de Serviços (SCM) passa um comando personalizado para o serviço. Especifica ações a serem tomadas quando um comando com o valor do parâmetro especificado ocorre.
Método protegidoOnPauseQuando implementada em uma classe derivada, executa quando um comando de pausa é enviado ao serviço pelo Gerenciador de Controle de Serviços (SCM). Especifica ações a serem tomadas quando um serviço pausado.
Método protegidoOnPowerEventQuando implementada em uma classe derivada, executa quando o status de poder do computador foi alterado. Isso se aplica aos laptops quando entram no modo suspenso, que não é igual a um desligamento do sistema.
Método protegidoOnSessionChangeExecuta quando um evento de alteração é recebido de uma sessão do terminal server.
Método protegidoOnShutdownQuando implementada em uma classe derivada, executa quando o sistema está sendo fechado. Especifica o que deve acontecer antes de fechar do sistema.
Método protegidoOnStartQuando implementada em uma classe derivada, executa quando um comando de Início é enviado ao serviço pelo Gerenciador de Controle de Serviços (SCM) ou quando o sistema operacional (para um serviço que inicia automaticamente). Especificar ações a ser executada quando o serviço é iniciado.
Método protegidoOnStopQuando implementada em uma classe derivada, executa quando um comando de parada é enviado ao serviço pelo Gerenciador de Controle de Serviços (SCM). Especifica ações a serem tomadas quando um serviço para.
Método públicoRequestAdditionalTimeSolicita hora adicionais para uma operação pendente.
Método públicoMembro estáticoRun(ServiceBase)Registra o executável para um serviço com o Gerenciador de Controle de Serviços (SCM).
Método públicoMembro estáticoRun(ServiceBase[])Registra o executável para vários serviços com o Gerenciador de Controle de Serviços (SCM).
Método públicoServiceMainCallbackInfraestrutura. Registra o manipulador de comando e iniciar o serviço.
Método públicoStopPara o serviço em execução.
Método públicoToStringRetorna uma String contendo o nome do Component, se houver. Este método não deve ser sobrescrito. (Herdado de Component.)
Superior

  NomeDescrição
Evento públicoDisposedOcorre quando o componente é descartado por uma chamada do método Dispose. (Herdado de Component.)
Superior

  NomeDescrição
Campo públicoMembro estáticoMaxNameLengthIndica o tamanho máximo para um nome de serviço.
Superior

Você deve herdar de ServiceBase ao definir sua classe de serviço em um aplicativo de serviço. Qualquer serviço útil substitui os métodos OnStart e OnStop. Para a funcionalidade adicional, você pode substituir OnPause e OnContinue com comportamento específico em resposta a alterações no estado do serviço.

Um serviço é um executável de execução demorada que não oferece suporte a uma interface de usuário e que pode não funcionar em modo de usuário logado. O serviço pode ser executado sem que qualquer usuário esteja conectado no computador.

Por padrão, execução dos serviços sob a conta do sistema, que não é a mesma que a conta de administrador. Você não pode alterar os direitos da conta do sistema. Como alternativa, você pode usar ServiceProcessInstaller para especificar uma conta de usuário sob a qual o serviço será executado.

Um executável pode conter mais de um serviço mas deve conter ServiceInstaller separado para cada serviço. A instância de ServiceInstaller registrar o serviço com o sistema. O instalador também vincular cada serviço com um log de eventos que você pode usar para registrar comandos do serviço. A função de main() no executável define que os serviços sejam executados. O diretório de trabalho atual do serviço é o diretório do sistema, não o diretório em que o executável está localizado.

Quando você iniciar um serviço, o sistema atende o executável e executar o método de OnStart para esse serviço, contido dentro do executável. Entretanto, executar o serviço não é o mesmo que executar o executável. O executável carregar apenas o serviço. O serviço é acessado (por exemplo, iniciado e interrompido) com o Gerenciador de Controle de Serviços.

O executável chama o construtor de classe derivada ServiceBase a primeira vez que você chama início no serviço. O método de comando- manipulação de OnStart é chamado imediatamente depois que o construtor é executado. O construtor não será executado novamente após a primeira vez que o serviço foi carregado, o que é necessário separar o processamento executado pelo construtor do que sejam executadas por OnStart. Todos os recursos que podem ser liberados por OnStop devem ser criados em OnStart. Criar recursos do construtor impede que sejam criadas corretamente se o serviço é iniciado novamente depois que OnStop libera os recursos.

O Gerenciador de Controle de Serviços (SCM) fornece uma maneira de interagir com o serviço. Você pode usar o SCM para transmitir, para Iniciar, pausar, retomar, ou comandos personalizados no serviço. SCM usa os valores de CanStop e de CanPauseAndContinue para determinar se o serviço aceite a parar, pausar, retomar ou comandos. Pare, a pausa, e Continue estão habilitadas nos menus de contexto do SCM somente se a propriedade correspondente CanStop ou CanPauseAndContinue é true na classe de serviço. Se habilitado, o comando é passado para o serviço e, OnStop, OnPause, ou OnContinue são chamados. Se CanStop, CanShutdown, ou CanPauseAndContinue são false, o método de comando- manipulação (como OnStop) não será processado, mesmo se você implementou o método.

Você pode usar a classe de ServiceController para fazer o SCM que faz usando uma interface do usuário. Você pode automatizar as tarefas disponíveis no console. Se CanStop, CanShutdown, ou CanPauseAndContinue são true mas você não tiver implementado um método de comando- manipulação (como) OnStoplançará uma exceção do sistema e não ignora o comando.

Você não tem que implementar OnStart, OnStop, ou qualquer outro método em ServiceBase. Porém, o comportamento de serviço é descrito em OnStart, então pelo menos, esse membro deve ser substituído. A função de main() do executável registra o serviço no executável com o Gerenciador de Controle de Serviços chamando o método de Run . A propriedade de ServiceName do objeto de ServiceBase passado ao método de Run deve corresponder à propriedade de ServiceName do instalador de serviço para esse serviço.

Você pode usar InstallUtil.exe para instalar o em seu sistema.

ObservaçãoObservação

Você pode especificar um log diferente do log de eventos do aplicativo para receber uma notificação de chama novamente, mas nem AutoLog nem a propriedade de EventLog podem gravar em um log personalizado. Definir AutoLog a false se você não quiser usar o registro automático.

.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft