ID do artigo: 816169 - Última revisão: segunda-feira, 26 de novembro de 2007 - Revisão: 2.7

Como criar um projeto de instalação para um aplicativo Windows Service no translation from VPE for Csharp Visual

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo descreve como criar um projeto de instalação para um aplicativo Windows Service (anteriormente chamado de um "serviço NT"). Para fazer isso, você deve primeiro criar uma solução que contém um serviço do Windows simples projeto que grava uma entrada em seu log de aplicativo. Em seguida, você adicionar um projeto de instalação à solução para instalar o serviço Windows. Finalmente, inicie o serviço. Você pode iniciar o serviço usando o item Serviços na pasta Ferramentas administrativas no menu Iniciar.

Requisitos

A lista a seguir 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 mais recente sistema operacional Microsoft com o .NET Framework instalado
  • Microsoft Visual Studio .NET Enterprise, Microsoft Visual Studio .NET Enterprise Architect, Microsoft Visual Studio 2005 ou Microsoft Visual Studio 2008.
Este artigo presume que você esteja familiarizado com o Windows Services. Se você não estiver familiarizado com os serviços do Windows, consulte a primeira referência na seção REFERENCES deste artigo.

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

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

Esta seção descreve como criar um serviço do Windows projeto e como usar um projeto de instalação compilado 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 para novo e, em seguida, clique em Project .
  3. Clique em projetos do Visual translation from VPE for Csharp em Tipos de projeto e, em seguida, clique em Serviço do Windows em modelos .

    Observação No Visual Studio 2005 ou Visual Studio 2008, expandir translation from VPE for Csharp Visual em Project Types , clique em Windows e, em seguida, clique em Serviço do Windows em modelos .
  4. Tipo LogWriterService na caixa de texto nome e em seguida, digite C:\ na caixa de texto local . Clique em OK .
  5. No Solution Explorer, clique com o botão direito do mouse Service1.cs e, em seguida, clique em View Code .
  6. No manipulador de evento OnStart , substituir os comentários com o seguinte código:
    EventLog.WriteEntry("My simple service started.");
  7. No Solution Explorer, clique duas vezes em Service1.cs .
  8. Na janela Code Editor, clique com o botão direito Modo Design e, em seguida, clique em Propriedades
  9. No painel Propriedades, clique no link Add Installer .
  10. No painel Properties para ServiceInstaller1 , alterar ServiceName propriedade para Service1 .
  11. Na janela Code Editor no modo de design, clique em ServiceProcessInstaller1 .
  12. No painel Propriedades, altere a propriedade conta como LocalSystem (os valores LocalService e NetworkService estão disponíveis somente no Microsoft Windows XP).

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

Depois que você conclui as etapas na seção anterior para configurar o projeto Windows Service, execute estas etapas para adicionar um projeto de implantação que empacota o aplicativo de serviço so that o aplicativo de serviço pode ser instalado:
  1. Adicione um novo projeto ao seu projeto LogWriterService. Para fazer isso, execute as seguintes etapas:
    1. No Solution Explorer, clique com o botão direito do mouse 'LogWriterService' Solution (1 projeto) , aponte para Add e, em seguida, clique em New Project .
    2. Clique em Setup and Deployment Projects em Project Types e 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. Informe a implantação do projeto e ao pacote. Para fazer isso, execute as seguintes etapas:
    1. No Solution Explorer, clique com o botão direito do mouse ServiceSetup , aponte para Add e, 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 Primary Output e, em seguida, clique em OK .
  3. Para instalação correta, adicione somente saída primária. Para adicionar as ações personalizadas, execute estas etapas:
    1. No Solution Explorer, clique com o botão direito do mouse ServiceSetup , aponte para modo de exibição e, em seguida, clique em Ações personalizadas
    2. Clique Custom Actions com o botão direito do mouse e, em seguida, clique em Add Custom Action .
    3. Clique em Pasta de aplicativo e, em seguida, clique em OK .
    4. Clique em Primary output from LogWriterService (Active) e em seguida, clique em OK .

      Observe que a saída primária é exibido em instalar , Confirmar , Rollback e Uninstall .
  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 direito do mouse LogWriterService e clique em criar .
      2. Clique com o botão direito do mouse ServiceSetup e 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 completa que está disponível para o serviço.
  5. Para instalar o serviço recém-criado, clique com o botão direito do mouse ServiceSetup e, em seguida, clique em instalar .
  6. Clique na caixa de diálogo ServiceSetup , em Avançar três vezes. Observe que uma barra de progresso aparece enquanto instala o serviço.
  7. Quando o serviço é instalado, clique em Fechar .

Concluir a listagem de código

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.
		}
	}
}

Verificar se ele funciona

  1. No painel de controle, clique duas vezes em Ferramentas administrativas e, em seguida, clique duas vezes em serviços
  2. Clique com o botão direito do mouse Service1 e, em seguida, clique em Iniciar
  3. Use um dos seguintes métodos para verificar que um evento é registrado no log de eventos:
    • método 1
      1. No painel de controle, clique duas vezes em Ferramentas administrativas e, em seguida, clique duas vezes em Visualizar eventos .
      2. Clique em Log do aplicativo no painel esquerdo e localize o log de eventos para o serviço no painel da direita.
    • método 2
      1. No Server Explorer, expanda Servers , expanda ComputerName, expanda Logs de eventos , expanda o aplicativo e, em seguida, expanda Service1 . Lembre-se que Service1 é o nome da classe, não o serviço propriamente dito. Portanto, Service1 é usado como o nome do aplicativo. (É além do escopo deste artigo para explicar como personalizar os nomes de.)
      2. Move o cursor sobre as entradas de log. A segunda entrada de cima para baixo leia "Meu serviço simples iniciado".

Solucionar 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 pode funcionar de maneira significativa. Não é possível depurar ou executar um aplicativo de serviço pressionando F5 ou F11; você não pode executar imediatamente um serviço ou etapa no seu código. Em vez disso, você deve instalar e iniciar o serviço e anexar um depurador ao processo do serviço.
Para obter mais informações, visite o seguinte site da Web Microsoft Developer Network (MSDN):
Depuração do Windows Service Applications http://msdn2.microsoft.com/en-us/library/aa984342(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/aa984342(VS.71).aspx)

Referências

Para criar um serviço útil do Windows que demonstra como instalar o, como teste e como para depurar o serviço, visite o seguinte site da MSDN:
Introdução ao Windows Service Applications http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx (http://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:
Windows Services: Novas classes base no .NET criar texto de um serviço do Windows fácil
http://msdn.microsoft.com/msdnmag/issues/01/12/NetServ/default.aspx (http://msdn.microsoft.com/msdnmag/issues/01/12/NetServ/default.aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
Palavras-chave: 
kbmt kbeventlog kbsetup kbserviceprocess kbservice kbhowtomaster KB816169 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 816169  (http://support.microsoft.com/kb/816169/en-us/ )