Partilhar via


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

  1. On the Arquivo menu, clicar Novo projeto.

    A Caixa de diálogo New Project é aberta.

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

  3. Clique Service1 para selecionar o designer.Em seguida, no Propriedades janela, conjunto o ServiceName e o (Nome) propriedade Service1 para MyNewService.

  4. Defina a propriedade AutoLog como true.

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

  1. No Solution Explorer, Clique com o botão direito do mouse em Service1.vb, Service1.cs ou Service1.jsl e selecione View Designer

  2. From a Componentes Guia de do Caixa de ferramentas, arrastar an EventLog componente ao designer.

  3. No Solution Explorer, Clique com o botão direito do mouse emService1.vb, Service1.cs. ou Service1.jsl e selecione View Code

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

  1. No Solution Explorer, Clique com o botão direito do mouse em Service1.vb, Service1.cs ou Service1.jsl e selecione View Designer

  2. clicar no plano de fundo do designer para selecionar o serviço propriamente dito, em vez de qualquer um dos seu Sumário.

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

  4. No Modo de exibição Design para ProjectInstaller, clique em ServiceInstaller1 ou serviceInstaller1.

  5. No Propriedades janela, defina o ServiceName propriedade para MyNewService.

  6. Defina a propriedade StartType como Automatic.

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

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

  2. Na página aplicativo do Objeto de inicialização clicarMyNewService.

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

  1. Na Solution Explorer, clique com o botão direito do mouse para selecionar a solução, aponte para Add, e clique New Project.

  2. No painel Project Types, selecione a pasta Setup and Deployment Projects.

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

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

  2. MyNewService é selecionado na caixa Project.

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

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

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

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

  4. No Solution Explorer, clique com o botão direito do mouse no projeto MyServiceSetup e clique em Build.

Para instalar o Windows service

  1. Para instalar MyNewService.exe, clique com o botão direito do mouse no projeto de instalação em Solution Explorer e selecione Install.

  2. Siga as etapas no Setup Wizard.Crie e salve sua solução.

Para iniciar e interromper o serviço

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

  2. Selecione o serviço na lista, clique com o botão direito do mouse, e clique em Start.

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

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

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

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

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

Outros recursos

Aplicativos Windows Service