Como criar um projeto de instalação para um aplicativo Windows Service no Visual C#

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 816169
Sumário
Este artigo descreve como criar um projeto de instalação para um aplicativo de serviço do Windows (anteriormente conhecido como um "serviço NT"). Para fazer isso, você deve primeiro criar uma solução que contém um simple projeto Windows Service que grava uma entrada para o log do aplicativo. Em seguida, você adicionar um projeto de instalação à solução para instalar o serviço do Windows. Finalmente, inicie o serviço. Você pode iniciar o serviço usando o item serviços na pasta Ferramentas administrativas no menu Iniciar.

Voltar ao início

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você deve ter:
  • Microsoft Windows 2000, Windows XP, Windows Server 2003 ou um sistema operacional mais recente da Microsoft com o.NET Framework instalado
  • Microsoft Visual Studio .NET Enterprise, VisualStudio Microsoft .NET Enterprise Architect, Microsoft Visual Studio 2005 ou do Microsoft Visual Studio 2008.
Este artigo pressupõe que você esteja familiarizado com o Windows Services. Se você não estiver familiarizado com os serviços do Windows, consulte a referência na primeira a Referências seção deste artigo.

Este artigo também pressupõe que a conta de usuário que você usar para instalar e executar este serviço tem as permissões que você precisa para instalar e iniciar serviços e também tem as permissões que você deve ter para acessar o log de eventos.

Voltar ao início

Criar um projeto de instalação para um serviço do Windows

Esta seção descreve como criar um projeto Windows Service e como usar um projeto compilado de instalação para instalar o serviço do Windows.

Criar um projeto de serviço do Windows

  1. Inicie o Microsoft Visual Studio.
  2. No menu arquivo , aponte paranovoe, em seguida, clique em Project.
  3. Clique em Projetos do Visual C# em Project Typese, em seguida, clique em Serviço do Windows em modelos.

    Observação: No Visual Studio 2005 ou o Visual Studio 2008, expanda Visual C#<b00> </b00> em Project Types, clique em Windowse, em seguida, clique em Serviço do Windows em modelos.
  4. Tipo LogWriterService Na caixa de texto nome e digite C:\ Na caixa de texto local . Clique em OK.
  5. No Solution Explorer, clique Service1. cse, em seguida, clique em ViewCode.
  6. No manipulador de eventos OnStart , substitua thecomments com o seguinte código:
    EventLog.WriteEntry("My simple service started.");
  7. No Solution Explorer, clique duas vezes emService1. cs.
  8. Na janela Editor de código, clique com o botãoModo de Designe, em seguida, clique emPropriedades
  9. No painel de propriedades, clique no linkAdd Installer .
  10. No painel propriedadesServiceInstaller1, altere a propriedade ServiceNamepara Service1.
  11. Na janela Code Editor no modo Design, clique em ServiceProcessInstaller1.
  12. No painel Propriedades, altere a propriedade deconta para LocalSystem (O Serviço local e Serviço de rede valores estão disponíveis somente no Microsoft Windows XP).
Voltar ao início

Usar um projeto compilado de instalação para instalar o serviço do Windows

Depois de concluir as etapas na seção anterior para configurar o projeto de serviço do Windows, siga estas etapas para adicionar um projeto de implantação que empacota o aplicativo de serviço para que o aplicativo de serviço pode ser instalado:
  1. Adicione um novo projeto para o projeto LogWriterService. Para fazer isso, execute as seguintes etapas:
    1. No Solution Explorer, clique com o botão solução 'LogWriterService' (1 projeto), aponte para Adde clique New Project.
    2. Clique em Setup and Deployment Projects em Project Typese, em seguida, clique em Projeto de instalação em modelos.
    3. Na caixa de texto nome , digite ServiceSetup.
    4. Tipo C:\ no texto local caixa e, em seguida, clique em OK.
  2. Saber o que o projeto de implantação ao pacote. Para fazer isso, execute as seguintes etapas:
    1. No Solution Explorer, clique com o botão ServiceSetup, aponte para Adde, em seguida, clique em Project Output
    2. Na caixa de diálogo Add Project Output Group , na caixa Project , clique em LogWriterService
    3. Clique em Saída primáriae, em seguida, clique em OK.
  3. Para a instalação correta, adicione somente a saída principal. Para adicionar ações personalizadas, execute as seguintes etapas:
    1. No Solution Explorer, clique com botão direito ServiceSetup, aponte para modo de exibiçãoe, em seguida, clique em Custom Actions
    2. Clique com o botão Ações personalizadase, em seguida, clique em Add Custom Action.
    3. Clique em Pasta do aplicativoe, em seguida, clique em OK.
    4. Clique em saída primária de LogWriterService (ativo)e, em seguida, clique em OK.

      Observe que a saída primária é exibido em instalar, Confirmar, reversão e desinstalar.
  4. Por padrão, os projetos de instalação não são incluídos na configuração de compilação. Para criar a solução, use um dos seguintes métodos:
    • Método 1
      1. Clique com o botão LogWriterServicee clique em criar.
      2. Clique com o botão ServiceSetupe, em seguida, clique em criar.
    • Método 2
      1. No menu Build , clique em Configuration Manager para criar a solução inteira.
      2. Clique para selecionar a caixa de seleção criar para ServiceSetup.
      3. Pressione F7 para compilar a solução inteira. Quando a solução é criada, você tem um pacote de instalação completo está disponível para o serviço.
  5. Para instalar o serviço recém-criado, clique com o botãoServiceSetupe, em seguida, clique em instalar.
  6. Na caixa de diálogo ServiceSetup , clique emAvançar três vezes. Observe que uma barra de progresso aparece enquanto instala o theservice.
  7. Quando o serviço é instalado, clique emFechar.
Voltar ao início

Listagem de código completa

Service1. cs

using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;namespace LogWriterService{	public class Service1 : System.ServiceProcess.ServiceBase	{		/// <summary> 		/// Required designer variable.		/// </summary>		private System.ComponentModel.Container components = null;		public Service1()		{			// The Windows.Forms Component Designer must have this call.			InitializeComponent();			// TODO: Add any initialization after the InitComponent call		}		// The main entry point for the process		static void Main()		{			System.ServiceProcess.ServiceBase[] ServicesToRun;				// More than one user service may run in the same process. To add			// another service to this process, change the following line to			// create a second service object. For example,			//			//   ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};			//			ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };			System.ServiceProcess.ServiceBase.Run(ServicesToRun);		}		/// <summary> 		/// Required method for Designer support - do not modify 		/// the contents of this method with the code editor.		/// </summary>		private void InitializeComponent()		{			components = new System.ComponentModel.Container();			this.ServiceName = "Service1";		}		/// <summary>		/// Clean up any resources that are being used.		/// </summary>		protected override void Dispose( bool disposing )		{			if( disposing )			{				if (components != null) 				{					components.Dispose();				}			}			base.Dispose( disposing );		}		/// <summary>		/// Set things in motion so your service can do its work.		/// </summary>		protected override void OnStart(string[] args)		{			EventLog.WriteEntry("My simple service started.");		} 		/// <summary>		/// Stop this service.		/// </summary>		protected override void OnStop()		{			// TODO: Add code here to perform any tear-down necessary to stop your service.		}	}}
Voltar ao início

Verifique se ele funciona

  1. No painel de controle, clique duas vezes em Ferramentas administrativase, em seguida, clique duas vezes em Serviços
  2. Clique com botão direito Service1e, em seguida, clique emIniciar
  3. Use um dos seguintes métodos para verificar se um evento islogged no log de eventos:
    • Método 1
      1. No painel de controle, clique duas vezes em Ferramentas administrativase, em seguida, clique duas vezes em Visualizar eventos.
      2. Clique em Log do aplicativo no painel esquerdo e, em seguida, localize o log de eventos para o serviço no painel da direita.
    • Método 2
      1. No Server Explorer, expanda Servers, expandaNome_do_computador, expanda Logs de eventos, expanda o aplicativoe expanda Service1. Lembre-se que Service1 é o nome da classe, não o próprio serviço. Portanto, Service1 é usado como o nome do aplicativo. (Ele está além do escopo deste artigo explicam como personalizar os nomes).
      2. Mova o cursor sobre as entradas de log. A segunda entrada da parte superior deve ler "meu serviço simple iniciado".
Voltar ao início

Solução de problemas

A documentação do SDK Framework afirmará o seguinte:
O arquivo executável compilado que cria um projeto de aplicativo de serviço deve ser instalado no servidor antes do projeto poder funcionar de uma maneira significativa. Você não pode depurar ou executar um aplicativo de serviço pressionando F5 ou F11; imediatamente você não pode executar um serviço ou etapa no seu código. Em vez disso, você deve instalar e iniciar seu serviço e, em seguida, anexar um depurador ao processo do serviço.
Para obter mais informações, visite o seguinte site da Microsoft Developer Network (MSDN):
Depurar aplicações de serviço do Windowshttp://msdn2.microsoft.com/en-us/library/aa984342 (VS.71).aspx
Voltar ao início
Referências
Para criar um serviço do Windows útil que demonstra como instalar, testar e depurar o serviço, visite o seguinte site da MSDN:
Introdução aos aplicativos de serviço do Windowshttp://msdn2.microsoft.com/en-us/library/Aa983650 (VS.71).aspx
Para obter mais informações, consulte o seguinte artigo da edição de dezembro de 2001 da MSDN Magazine:
Serviços do Windows: Escrever um serviço do Windows fácil fazem de novas Classes Base em .NET
http://msdn.microsoft.com/msdnmag/issues/01/12/NetServ/default.aspx
Voltar ao início

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 816169 - Última Revisão: 04/10/2016 04:51:00 - Revisão: 3.0

Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# 2008 Express Edition

  • kbeventlog kbsetup kbserviceprocess kbservice kbhowtomaster kbmt KB816169 KbMtpt
Comentários