Demonstra Passo a passo: Criando um Aplicativo Windows Service no Designer de Componentes
Observação: |
---|
O Serviço do Windows modelo e a funcionalidade associada não está disponível na Standard edição do Visual Studio. |
Os procedimentos neste tópico demonstram a criação de um simples aplicativo Windows serviço grava mensagens de um log de eventos.As etapas básicas que realizar para criar e usar sua serviço incluem:
Criar um projeto usando o Serviço do Windows o modelo de aplicativo.Este modelo cria uma classe para você que herda de ServiceBase e escreve muito do código de serviço básico, sistema autônomo o código para iniciar o serviço.
Escreva o código para o OnStart e OnStop procedimentos e substituem outros métodos que você deseja redefinir.
Adicione os instaladores necessários para seu aplicativo de serviço.Por padrão, uma classe que contém dois ou mais instaladores é adicionada ao seu aplicativo quando você clicar na Adicionar instalador link: um para instalar o processo e um para cada associados ao serviço que contém o projeto.
Crie seu projeto.
Crie um projeto de instalação para instalar o serviço, e então instale-o.
Acesse o gerenciador de controle de serviços do Windows 2000 e inicie seu serviço.
Para começar, crie o projeto e conjunto valores que são necessárias para o serviço funcione corretamente.
Observação: |
---|
Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio. |
Crie um serviço
Para criar e configurar o serviço
On the Arquivo menu, clicar Novo projeto.
A Caixa de diálogo New Project é aberta.
selecionar o Serviço do Windowsprojeto da lista de Visual Basic, translation from VPE for Csharp Visual, Visual C++ ou Visual J# modelos de projeto, nomeie -o MyNewService.Clique em OK.
Observação: O modelo de projeto automaticamente adiciona um componente classe chamada Service1 que herda de System.ServiceProcess.ServiceBase.
Clique Service1 para selecionar o designer.Em seguida, no Propriedades janela, conjunto o ServiceName e o (Nome) propriedade Service1 para MyNewService.
Defina a propriedade AutoLog como true.
No menu View, clique em Code para abrir o Editor de Código.Editar o método Main para criar uma instância do MyNewService.Quando você renomeou o serviço na etapa 3, o nome da classe não foi modificado no método Main.Em aplicativos Visual translation from VPE for Csharp e Visual J#, a Main método está localizado em arquivos programa.cs e programa.js, respectivamente.
' To access the Main method in Visual Basic, select Main from the ' method name drop-down list. This expands the Component Designer ' generated code region. Shared Sub Main() Dim ServicesToRun() As System.ServiceProcess.ServiceBase ' Change the following line to match. ServicesToRun = New System.ServiceProcess.ServiceBase() _ {New MyNewService()} System.ServiceProcess.ServiceBase.Run(ServicesToRun) End Sub
static void Main() { System.ServiceProcess.ServiceBase[] ServicesToRun; // Change the following line to match. ServicesToRun = new System.ServiceProcess.ServiceBase[] { new MyNewService() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); }
public static void main(String[] args) { System.ServiceProcess.ServiceBase[] ServicesToRun; ServicesToRun = new System.ServiceProcess.ServiceBase[] { new MyNewService() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); }
Adicione recursos ao serviço
Na próxima seção, você adicionar um personalizado evento log para o serviço do Windows.Logs de eventos não são associados de nenhuma forma a Windows Services.Aqui o EventLog componente é usado sistema autônomo um exemplo de tipo de componente que você pode adicionar a um Windows serviço. Para obter mais informações sobre logs de eventos personalizado, consulte Como: Criar e Remover Personalizar Event Logs.
Para adicionar a funcionalidade Log de eventos personalizado ao seu serviço
No Solution Explorer, Clique com o botão direito do mouse em Service1.vb, Service1.cs ou Service1.jsl e selecione View Designer
From a Componentes Guia de do Caixa de ferramentas, arrastar an EventLog componente ao designer.
No Solution Explorer, Clique com o botão direito do mouse emService1.vb, Service1.cs. ou Service1.jsl e selecione View Code
Edite o construtor para definir um log de eventos personalizado.
' To access the constructor in Visual Basic, select New from the ' method name drop-down list. Public Sub New() MyBase.New() InitializeComponent() If Not System.Diagnostics.EventLog.SourceExists("MySource") Then System.Diagnostics.EventLog.CreateEventSource("MySource", _ "MyNewLog") End If EventLog1.Source = "MySource" EventLog1.Log = "MyNewLog" End Sub
public MyNewService() { InitializeComponent(); if (!System.Diagnostics.EventLog.SourceExists("MySource")) { System.Diagnostics.EventLog.CreateEventSource( "MySource","MyNewLog"); } eventLog1.Source = "MySource"; eventLog1.Log = "MyNewLog"; }
public MyNewService() { InitializeComponent(); if (!System.Diagnostics.EventLog.SourceExists("MySource")) { System.Diagnostics.EventLog.CreateEventSource( "MySource", "MyNewLog"); } eventLog1.set_Source("MySource"); eventLog1.set_Log("MyNewLog"); }
Para definir o que ocorre quando o serviço é iniciado
No Editor de código, localizar o OnStart método que foi substituído automaticamente quando você criou o projeto e escrevea o código para determinar o que ocorre quando o serviço começa executando:
' To access the OnStart in Visual Basic, select OnStart from the ' method name drop-down list. Protected Overrides Sub OnStart(ByVal args() As String) EventLog1.WriteEntry("In OnStart") End Sub
protected override void OnStart(string[] args) { eventLog1.WriteEntry("In OnStart"); }
protected void OnStart(String[] args) { eventLog1.WriteEntry("In OnStart"); }
Observação: Um aplicativo de serviço é projetado para ser longo em execução .Portanto , geralmente controla ou monitora algo no sistema.O monitoramento é conjunto acima no OnStart método. No entanto, OnStart Na verdade não o monitoramento. The OnStart método deve retornar para o sistema operacional depois de iniciada a operação do serviço. Ele não deve entrar em loop contínuo ou Bloquear.Para conjunto até um mecanismo de sondagem simples, você pode usar o System.Timers.Timer componente. No OnStart método, você definiria parâmetros no componente e, em seguida, você poderia conjunto a Enabled propriedade para true. O timer então iria disparar eventos em seu código periodicamente, sempre que o serviço pudesse fazer sua monitoração.
Para definir o que ocorre quando o serviço for interrompido
No Editor de código, selecionar o OnStop procedimento a partir do Nome do método na lista suspensa, que foi substituída automaticamente quando você criou o projeto.Escreva o código para determinar o que ocorre quando o serviço for interrompido:
Protected Overrides Sub OnStop() EventLog1.WriteEntry("In OnStop.") End Sub
protected override void OnStop() { eventLog1.WriteEntry("In onStop."); }
protected void OnStop() { eventLog1.WriteEntry("In onStop."); }
Você também pode substituir o OnPause, OnContinue, e OnShutdown métodos para definir processamentos adicionais para seu componente.
Para definir outras ações para o serviço
Para o método que você deseja manipular, substitua o método apropriado e defina o que você deseja que ocorra.
O código a seguir mostra sua aparência se você substituir o OnContinue método:
Protected Overrides Sub OnContinue() EventLog1.WriteEntry("In OnContinue.") End Sub
protected override void OnContinue() { eventLog1.WriteEntry("In OnContinue."); }
protected void OnContinue() { eventLog1.WriteEntry("In OnContinue."); }
Algumas ações personalizadas precisam ocorrer quando um serviço do Windows é instalado, o que pode ser concluído pelo Installer classe. O Visual Studio pode criar esses instaladores especificamente para um Windows Service e adicioná-los ao seu projeto.
Para criar os instaladores para o serviço
No Solution Explorer, Clique com o botão direito do mouse em Service1.vb, Service1.cs ou Service1.jsl e selecione View Designer
clicar no plano de fundo do designer para selecionar o serviço propriamente dito, em vez de qualquer um dos seu Sumário.
Com o designer em foco, clique com o botão direito do mouse e clique Add Installer.
Por padrão, uma classe componente contendo dois instaladores é adicionada ao seu projeto.O componente é denominado ProjectInstaller, e os instaladores que ele contém são o instalador para o serviço e o instalador para o serviço do processo associado.
No Modo de exibição Design para ProjectInstaller, clique em ServiceInstaller1 ou serviceInstaller1.
No Propriedades janela, defina o ServiceName propriedade para MyNewService.
No Designer, clique em ServiceProcessInstaller1 (para um projeto do Visual Basic), ou serviceProcessInstaller1 (para um projeto Visual C# ou Visual J#).Defina a propriedade Account como LocalService.Isso fará com que o serviço seja instalado e seja executado em uma conta de serviço local.
Observação de segurança: O LocalService conta age sistema autônomo um usuário sem privilégios no computador local e apresenta credenciais anônimas para qualquer servidor remoto. Use a outras contas com cuidado, já que executam com privilégios maior e aumentam o risco de ataques de código mal-intencionado.
Para criar seu projeto de serviço
In O gerenciador de soluções, clicar com o botão direito do mouse em seu projeto e, em seguida, clique em Propriedades.O Property Designer do projeto aparece.
Na página aplicativo do Objeto de inicialização clicarMyNewService.
Pressione Ctrl + Shift + B para criar o projeto.
Agora que o projeto é criado, ele pode ser implantado.Um projeto de instalação irá instalar os arquivos de projeto compilado e executar os instaladores necessários para executar o serviço do Windows.Para criar um projeto de concluir a instalação você precisará adicionar o projeto de saída MyNewService.exe, para o projeto de instalação e, em seguida, adicione uma ação personalizada para que o MyNewService.exe instalado.Para obter mais informações sobre projetos de instalação, consulte Projetos de instalação. Para obter mais informações sobre ações personalizadas, consulte Demonstra Passo a passo: Criando uma ação Personalizar.
Para criar um projeto de instalação para o serviço
Na Solution Explorer, clique com o botão direito do mouse para selecionar a solução, aponte para Add, e clique New Project.
No painel Project Types, selecione a pasta Setup and Deployment Projects.
No painel Templates, selecione Setup Project.Nomeie o projeto MyServiceSetup.Clique em OK.
Um projeto de instalação é adicionado à solução.
Em seguida você adicionará a saída do projeto do Windows service, MyNewService.exe, à configuração.
Para adicionar MyNewService.exe ao projeto de instalação
In O gerenciador de soluções, clicar com o botão direito do mouse em MyServiceSetup, point to Adicionare, em seguida, clique em Saída do projeto.
A caixa de diálogo Add Project Output Group aparece.
MyNewService é selecionado na caixa Project.
Na lista, selecionar Saída principale clicar OK.
Um item de projeto para a saída principal de MyNewService é adicionado ao projeto de instalação.
Agora, adicione uma ação personalizada para instalar o arquivo MyNewService.exe.
Para adicionar uma ação personalizada para o projeto de instalação
No Solution Explorer, clique com o botão direito do mouse o projeto de instalação, aponte para View, e clique Custom Actions.
O editor Custom Actions aparece.
No Ações personalizadas editor, clicar com o botão direito do mouse o Ações personalizadas nó e clique em Adicionar ação personalizada.
A caixa de diálogo Select Item in Project aparece.
clicar duas vezes o Pasta de aplicativo na lista para abri-la, selecionar **Saída principal de MyNewService (ativo)**e clicar OK.
A saída primária é adicionada ao todos os nós das ações —Install personalizadas, Commit quatro, Rollback. e Uninstall
No Solution Explorer, clique com o botão direito do mouse no projeto MyServiceSetup e clique em Build.
Para instalar o Windows service
Para instalar MyNewService.exe, clique com o botão direito do mouse no projeto de instalação em Solution Explorer e selecione Install.
Siga as etapas no Setup Wizard.Crie e salve sua solução.
Para iniciar e interromper o serviço
Abra o Gerenciador de controle de serviços seguindo um destes procedimentos:
No Windows XP e 2000 Professional, clique com o botão direito em My Computer na área de trabalho e depois clique em Manage.No console Computer Management, expanda o nó Services and Applications.
- ou -
No Windows 2003 e Server 2000, clique em Start, aponte para Programs, clique em Administrative Tools, e então clique em Services.
Observação: No Windows NT versão 4.0, você pode abrir esta caixa de diálogo no Painel de controle.
Agora você deve ver MyNewService listado na seção Services da janela.
Selecione o serviço na lista, clique com o botão direito do mouse, e clique em Start.
Clique com o botão direito do mouse no serviço, e clique em Stop.
Para verificar a saída do serviço no Log de eventos
Abra Server Explorer e acesse o nó Event Logs.Para obter mais informações, consulte Como: Trabalhar com logs de eventos em Gerenciador de Servidores.
Observação: O Serviço do Windows modelo e a funcionalidade associada não está disponível na Standard edição do Visual Studio.
Localize a listagem para MyNewLog e o expanda.Você deve ver entradas para as ações que o seu serviço tiver executado.
Para desinstalar o serviço
Sobre o Iniciar menu, em aberto Painel de controle e clicar Adicionar ou remover programase então localizar seu serviço e clicar Desinstalar o.
Você também pode desinstalar o programa clicando com o botão direito do mouse no ícone de programa para o arquivo.msi e selecionando Uninstall.
Observação: Se você instalou o serviço no Windows 2000 Você precisará reiniciar o sistema antes que você pode reinstalar o serviço.No Windows 2000, Serviços não são são excluídos completamente até que o sistema seja reinicializado.
Próximas etapas
Você pode explorar o uso de um ServiceController componente para que você possa enviar comandos para o serviço que você tenha instalado. Para obter mais informações sobre como usar o ServiceController componente, consulte Monitorando Windows Services.
Você pode usar um instalador para criar um evento logon quando o aplicativo está instalado em vez de criar o evento logon quando o aplicativo é executado.Além disso, o log de eventos serão excluídas pelo instalador quando o aplicativo é desinstalada.Para obter mais informações, consulte Demonstra Passo a passo: Instalar um componente de log de eventos.
Consulte também
Tarefas
Como: Adicionar instaladores ao seu aplicativo de serviço
Como: Instalar e desinstalar Serviços
Como: depurar Windows serviço Applications
Como: Iniciar Visualizar eventos de Gerenciader de Servideres
Conceitos
Introdução aos Aplicativos de Serviço do Windows
Referência
Como: Access and Initialize Server Explorer/Database Explorer