Demonstra Passo a passo: Criando um Aplicativo Windows Service no Designer de Componentes

ObservaçãoObservação

The Windows Service template and associated functionality is not available in the Standard Edition of Visual Studio.

The procedures in this topic demonstrate creating a simple Windows Service application that writes messages to an event log. The basic steps that you perform to create and use your service include the following:

  • Criar um projeto usando o Windows Service 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, como 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.

  • Add the necessary installers for your service application. Por padrão, uma classe que contém dois ou mais instaladores é adicionada ao seu aplicativo quando você clica no Add Installer link: um para instalar o processo e um para cada associada ao serviço que seu projeto contém.

  • Build your project.

  • Create a setup project to install your service, and then install it.

  • Access the Windows 2000 Services Control Manager and start your service.

Para começar, você pode cria o projeto e define os valores que são necessários para o serviço funcione corretamente.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da 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.

Creating a Service

To create and configure your service

  1. On the File menu, click New Project.

    The New Project dialog box opens.

  2. Selecione Windows Service modelos de projeto na lista de Visual Basic ou C# Visual e o nome do projeto, MyNewService. Click OK.

    ObservaçãoObservação

    O modelo de projeto automaticamente adiciona uma classe componente chamada Service1 que herda de System.ServiceProcess.ServiceBase.

  3. Click the designer to select Service1. Em seguida, na Propriedades janela, defina a ServiceName e o (nome) propriedade de Service1 para MyNewService.

Adding Features to the Service

Na próxima seção, você pode adicionar um log de eventos personalizado para o serviço do Windows. Event logs are not associated in any way with Windows services. Aqui o EventLog componente é usado como um exemplo do tipo de componente, você pode adicionar a um serviço do Windows.

To add custom event log functionality to your service

  1. Em Solution Explorer, com o botão direito Service1. vb ou Service1. cs e selecione View Designer.

  2. Do componentes guia da caixa de ferramentas, arraste um EventLog componente ao designer.

  3. Em Solution Explorer, com o botão direito Service1. vb ou Service1. cs e selecione Exibir código.

  4. Adicione ou 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";
        }
    

Para definir o que ocorre quando o serviço é iniciado

  • No Editor de código, localize o OnStart método foi substituído automaticamente quando você criou o projeto e escrever um 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");
        }
    
    ObservaçãoObservação

    A service application is designed to be long running. Portanto, ele geralmente controla ou monitora algo no sistema. A monitoração é configurada no OnStart método. No entanto, OnStart na verdade não o monitoramento. O OnStart método deve retornar para o sistema operacional depois de iniciada a operação do serviço. It must not loop forever or block. Para configurar o mecanismo de pesquisa simples, você pode usar o System.Timers.Timer componente. No OnStart método, você definiria parâmetros no componente e, em seguida, você definiria a Enabled propriedade para true. The timer would then raise events in your code periodically, at which time your service could do its monitoring.

Para definir o que ocorre quando o serviço for interrompido

  • No Editor de código, selecione o OnStop procedimento a partir de Nome do método na lista suspensa, que foi substituída automaticamente quando você criou o projeto. Write code to determine what occurs when the service is stopped:

    Protected Overrides Sub OnStop()
      EventLog1.WriteEntry("In OnStop.")
    End Sub
    
        protected override void OnStop()
        {
            eventLog1.WriteEntry("In onStop.");
        }
    

Você também pode substituir o OnPause, OnContinue, e OnShutdown métodos para definir um adicional de processamento para o componente.

To define other actions for the service

  • Para o método que você deseja manipular, substitua o método apropriado e definir 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.");
        }  
    

Algumas ações personalizadas precisam ocorrer quando um serviço do Windows é instalado, o que pode ser feito o Installer classe. Visual Studio can create these installers specifically for a Windows service and add them to your project.

To create the installers for your service

  1. Em Solution Explorer, com o botão direito Service1. vb ou Service1. cs e selecione View Designer.

  2. Clique em plano de fundo do designer para selecionar o serviço propriamente dito, em vez de um de seus conteúdos.

  3. With the designer in focus, right-click, and then click Add Installer.

    Por padrão, uma classe componente contendo dois instaladores é adicionada ao seu projeto. The component is named ProjectInstaller, and the installers it contains are the installer for your service and the installer for the service's associated process.

  4. In Design view for ProjectInstaller, click ServiceInstaller1 or serviceInstaller1.

  5. No Propriedades janela, certifique-se a ServiceName for definida como MyNewService.

  6. Set the StartType property to Automatic.

  7. No designer, clique em ServiceProcessInstaller1 (para um projeto de Visual Basic), ou serviceProcessInstaller1 (para um projeto do Visual C#). Set the Account property to LocalSystem. This will cause the service to be installed and to run on a local service account.

    Observação de segurançaObservação sobre segurança

    O LocalSystem conta tem permissões no amplas, incluindo a capacidade de gravar no log de eventos. Use essa conta com cuidado, pois ele pode aumentar o risco de ataques contra softwares mal-intencionados. Para outras tarefas, considere o uso de LocalService conta, que atua como um usuário sem privilégios no computador local e apresenta credenciais anônimas para qualquer servidor remoto.

To build your service project

  1. Em Solution Explorer, seu projeto com o botão direito e, em seguida, clique em Propriedades. The project's Property Designer appears.

  2. Na página de aplicativo, da o objeto de inicialização , clique em MyNewService.

  3. Press CTRL+SHIFT+B to build the project.

Now that the project is built, it can be deployed. Um projeto de instalação 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ê terá que adicionar a saída do projeto, MyNewService, a configuração de projeto e adicione uma ação personalizada para ter MyNewService instalado. Para obter mais informações sobre projetos de instalação, consulte Setup and Deployment Projects. Para obter mais informações sobre ações personalizadas, consulte Walkthrough: Criando uma ação personalizada.

To create a setup project for your service

  1. Em Solution Explorer, clique com o botão direito na sua solução, aponte para Adde em seguida, clique em Novo projeto.

  2. Em Modelos instalados, expanda Other Project Types e, em seguida, expanda Setup and Deployment.

  3. Selecione Visual Studio Installer de.

  4. In the Templates pane, select Setup Project. Name the project MyServiceSetup. Click OK.

    A setup project is added to the solution.

Next you will add the output from the Windows service project, MyNewService.exe, to the setup.

To add MyNewService.exe to the setup project

  1. Em Solution Explorer, com o botão direito MyServiceSetup, aponte para Adde em seguida, clique em A saída de projeto.

    The Add Project Output Group dialog box appears.

  2. MyNewService is selected in the Project box.

  3. Na lista, selecione Saída principale clique em OK.

    A project item for the primary output of MyNewService is added to the setup project.

Now add a custom action to install the MyNewService.exe file.

To add a custom action to the setup project

  1. In Solution Explorer, right-click the setup project, point to View, and then click Custom Actions.

    The Custom Actions editor appears.

  2. No Custom Actions editor, clique com botão direito do Custom Actions nó e clique em Add Custom Action.

    The Select Item in Project dialog box appears.

  3. Clique duas vezes o A pasta de aplicativo na lista para abri-lo, selecione **A saída principal de MyNewService (ativo)**e clique em OK.

    The primary output is added to all four nodes of the custom actions — Install, Commit, Rollback, and Uninstall.

  4. In Solution Explorer, right-click the MyServiceSetup project and click Build.

To install the Windows Service

  1. To install MyNewService.exe, right-click the setup project in Solution Explorer and select Install.

  2. Follow the steps in the Setup Wizard. Build and save your solution.

To start and stop your service

  1. Para abrir o Gerenciador de controle de serviços no Windows 7, o Windows Vista e Windows Server, clique com o botão direito computador sobre o Iniciar menu e clique Gerenciar. No Gerenciamento do computador de console, expanda o serviços e aplicativos o nó no painel esquerdo. Clique em serviços.

    You should now see MyNewService listed in the Services section of the window.

  2. Select your service in the list, right-click it, and then click Start.

  3. Right-click the service, and then click Stop.

To verify the event log output of your service

  1. Open Server Explorer and access the Event Logs node.

    ObservaçãoObservação

    The Windows Service template and associated functionality is not available in the Standard Edition of Visual Studio.

  2. Locate the listing for MyNewLog and expand it. You should see entries for the actions your service has performed.

To uninstall your service

  • Sobre o Iniciar menu, abrir O painel de controle e clique em Adicionar ou remover programas, localize seu serviço e clique desinstalar.

Próximas etapas

Você pode explorar o uso de um ServiceController o componente para que você possa enviar comandos para o serviço que você instalou.

Você pode usar um instalador para criar um log de eventos quando o aplicativo é instalado em vez de criar o log de eventos quando o aplicativo é executado. Additionally, the event log will be deleted by the installer when the application is uninstalled.

Consulte também

Tarefas

Como: Adicionar instaladores ao seu aplicativo de serviço

Como: Instalar e desinstalar serviços

Como: Depurar aplicativos de serviço do Windows

Referência

Como: Access and Initialize Server Explorer/Database Explorer

Conceitos

Introdução aos Aplicativos de Serviço do Windows

Outros recursos

Aplicativos Windows Service