Artigo: 317421 - Última revisão: quinta-feira, 26 de Junho de 2008 - Revisão: 9.1

Como criar um projecto de configuração para um serviço do Windows no Visual Basic .NET ou no Visual Basic 2005

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.
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 816169  (http://support.microsoft.com/kb/816169/ ) .

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo explica como criar um projecto de configuração para uma aplicação de serviço do Windows. (Serviço do Windows foi anteriormente conhecido como "Serviço de NT.") Para efectuar este procedimento, tem de criar uma solução que contém um serviço do Windows simples projecto. Este projecto escreve uma entrada no registo de aplicação. Adicionar um programa de configuração do projecto para a solução para instalar o serviço de janela. Finalmente, inicie o serviço no Visual Studio .NET Server Explorer.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Microsoft Windows Server 2003, Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows XP Professional ou Microsoft Windows XP Server juntamente com o Microsoft .NET Framework
  • Microsoft Visual Studio .NET Enterprise Edition, Visual Studio .NET Enterprise Architect Edition ou Microsoft Visual Studio 2005
Este artigo pressupõe que tenha uma geral familiaridade com os serviços do Windows. Se não estiver familiarizado com o Windows Services, consulte a referência primeira no "References" secção.

Este artigo também pressupõe que a conta de utilizador que utilizar para instalar e executar este serviço tem as permissões necessárias para instalar e iniciar serviços. A conta de utilizador também tem de ter as permissões necessárias para aceder o registo de eventos.

Criar um projecto de configuração para um serviço do Windows

Esta secção descreve como criar um projecto de serviço do Windows e como utilizar um projecto compilado do programa de configuração para instalar o serviço do Windows.

Criar um projecto de serviço do Windows

  1. Clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 e, em seguida, clique em Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 .
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Na caixa de diálogo Novo projecto , siga estes passos:
    1. Em Project Types , clique em Projectos do Visual Basic ou clique em Windows em Visual Basic .
    2. Em modelos , clique em Serviço do Windows .
    3. Na caixa nome , escreva LogWriterService .
    4. Na caixa localização , escreva C:\ e, em seguida, clique em OK .
  4. No Solution Explorer, clique com o botão direito do rato service1.VB e, em seguida, clique em Código .
  5. No processador de eventos OnStart , substitua os comentários o seguinte código.
    EventLog.WriteEntry("My simple service started.")
  6. No Solution Explorer, faça duplo clique em service1.VB .
  7. Na caixa de diálogo Propriedades , clique em Adicionar o programa de instalação .
  8. Na caixa de diálogo Propriedades ServiceInstaller1, altere a propriedade ServiceName para LogWriterService .
  9. Na vista de estrutura, clique em ServiceProcessInstaller1 no Editor de códigos.
  10. Na caixa de diálogo Propriedades , altere a propriedade conta como LocalSystem . O valor de serviço local e o valor do serviço de rede só estão disponíveis no Microsoft Windows XP e sistemas operativos posteriores.

Utilizar um projecto compilado do programa de configuração para instalar o serviço do Windows

Depois de concluir os passos na secção "Criar um projecto de serviço do Windows" para configurar o projecto de serviço do Windows, pode adicionar um projecto de implementação pacotes a aplicação de serviço para que possa ser instalada a aplicação de serviço. Para o fazer, siga estes passos:
  1. Adicione um novo projecto ao projecto LogWriterService.
    1. No Solution Explorer, clique com o botão direito do rato solução 'LogWriterService' , aponte para Adicionar e, em seguida, clique em Novo projecto .
    2. Em Project Types , clique em programa de configuração e projectos de implementação ou programa de configuração e implementação .
    3. Em modelos , clique em Programa de configuração do projecto .
    4. Na caixa nome , escreva ServiceSetup .
    5. Na caixa localização , escreva C:\ e, em seguida, clique em OK .
  2. Informe o projecto de implementação que irá compactar o projecto de implementação.
    1. No Solution Explorer, clique com o botão direito do rato ServiceSetup , aponte para Adicionar e, em seguida, clique em Project saída .
    2. Na caixa de diálogo Adicionar grupo de saída do projecto , clique em LogWriterService na caixa Project .
    3. Clique em Saída principal e, em seguida, clique em OK .
  3. Instalação correcta, terá de adicionar apenas saída primário. Para adicionar acções personalizadas, siga estes passos:
    1. No Solution Explorer, clique com o botão direito do rato ServiceSetup , aponte para Ver e, em seguida, clique em Acções personalizadas .
    2. Clique com o botão direito do rato Acções personalizadas e, em seguida, clique em Adicionar acção personalizada .
    3. Clique em Pasta de aplicações e, em seguida, clique em OK .
    4. Clique em saída principal de LogWriterService (Active Directory) e, em seguida, clique em OK . Repare que a saída principal aparece em instalar, consolidação, recuperar e desinstalar .
  4. Por predefinição, os projectos do programa de configuração não são incluídos na configuração de compilação. Para criar a solução, siga estes passos:
    1. Utilize um dos seguintes métodos:
      • Clique com o botão direito do rato LogWriterService e clique em criar . Em seguida, clique com o botão direito do rato ServiceSetup e, em seguida, clique em criar .
      • Para criar a solução completa ao mesmo tempo, clique em Gestor de configuração no menu criar e, em seguida, clique para seleccionar a caixa de verificação criar para ServiceSetup .
    2. Prima CTRL + SHIFT + B, para criar a solução completa. Quando baseia-se a solução, terá uma instalação completa pacote para o serviço.
  5. Para instalar o serviço, clique com o botão direito do rato ServiceSetup e, em seguida, clique em instalar .
  6. Clique na caixa de diálogo ServiceSetup , em seguinte três vezes. Repare que é apresentada uma barra de evolução enquanto o programa de configuração está a instalar o serviço.
  7. Quando o serviço é instalado, clique em Fechar .

Listagem de código completo (service1.VB)

Public Class Service1

    Protected Overrides Sub OnStart(ByVal args() As String)
        ' Add code here to start your service. This method should set things
        ' in motion so your service can do its work.
        EventLog.WriteEntry("Mysimple service started")
    End Sub

    Protected Overrides Sub OnStop()
        ' Add code here to perform any tear-down necessary to stop your service.
    End Sub

End Class

(service1.Designer.vb)

Imports System.ServiceProcess

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Service1
    Inherits System.ServiceProcess.ServiceBase

    'UserService overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    ' The main entry point for the process
    <MTAThread()> _
    <System.Diagnostics.DebuggerNonUserCode()> _
    Shared Sub Main()
        Dim ServicesToRun() As System.ServiceProcess.ServiceBase

        ' More than one NT Service may run within 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)
    End Sub

    'Required by the Component Designer
    Private components As System.ComponentModel.IContainer

    ' NOTE: The following procedure is required by the Component Designer
    ' It can be modified using the Component Designer.  
    ' Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        Me.ServiceName = "Service1"
    End Sub

End Class

Verifique se o serviço do Windows funciona

  1. Clique em Iniciar , aponte para Painel de controlo , aponte para Ferramentas administrativas e, em seguida, clique em Serviços .
  2. Clique com o botão direito do rato LogWriterService e, em seguida, clique em Iniciar .
  3. Para verificar que é registado um evento no registo de eventos, utilize um dos seguintes métodos:
    • Clique em Iniciar , aponte para Painel de controlo , aponte para Ferramentas administrativas e, em seguida, clique em Visualizador de eventos . No painel esquerdo, clique em Registo de aplicações . No painel da direita, localize o registo de eventos para o serviço.
    • No Explorador do servidor, expanda Servers , expanda ComputerName, expanda registos de eventos , expanda a aplicação e expanda Service1 . Tenha em atenção que Service1 é o nome da classe e não o nome do serviço. Por conseguinte, Service1 é utilizado como o nome da aplicação. (Se estiver fora do âmbito deste artigo explicam como personalizar os nomes.) Mova o cursor através de entradas de registo. A segunda entrada da parte superior é o seguinte:

      O serviço simples iniciado

Resolução de problemas

A documentação do SDK Framework indica o seguinte:
O ficheiro executável compilado que cria um projecto de aplicação de serviço tem de ser instalado no servidor antes do projecto pode funcionar de forma significativa. Não é possível depurar ou executar uma aplicação de serviço premindo F5 ou F11; não é possível executar imediatamente um serviço ou passo no respectivo código. Em vez disso, deve instalar e iniciar o serviço e, em seguida, anexe um depurador ao processo do serviço.
Para mais informações, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa984342(VS.71).aspx (http://msdn.microsoft.com/en-us/library/aa984342(VS.71).aspx)

Referências

Para obter informações sobre como criar um serviço útil do Windows que demonstra como instalar, como testar e como depurar o serviço, visite o seguinte Web site da MSDN:
http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx)
Para mais informações, visite o seguinte site da Web MSDN:
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 Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic 6.0 Standard Edition
  • Microsoft Visual Basic 2008 Express Edition
Palavras-chave: 
kbmt kbvs2005applies kbvs2005swept kbhowtomaster KB317421 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 317421  (http://support.microsoft.com/kb/317421/en-us/ )