Compartilhar via


Provedores de início automático de serviços <serviceAutoStartProviders>

Visão geral

O elemento <serviceAutoStartProviders> especifica uma coleção de assemblies gerenciados que o WAS (Serviço de Ativação de Processos do Windows) carregará automaticamente quando o atributo startMode de um pool de aplicativos for definido como AlwaysRunning. Essa coleção permite que os desenvolvedores especifiquem assemblies que executam tarefas de inicialização antes que quaisquer solicitações HTTP sejam atendidas. Por exemplo, um desenvolvedor de aplicativos pode querer estabelecer as conexões de banco de dados iniciais para o aplicativo antes que o IIS inicie o processamento da solicitação; isso permitirá que o aplicativo execute mais rapidamente para solicitações iniciais que exijam viagens de ida e volta de um banco de dados.

Para obter mais informações sobre como configurar pools de aplicativos para que sejam iniciados automaticamente, consulte o tópico <applicationPools>.

Observação

Esse elemento foi introduzido no IIS 7.5.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <serviceAutoStartProviders> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <serviceAutoStartProviders> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <serviceAutoStartProviders> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <serviceAutoStartProviders> foi introduzido no IIS 7.5.
IIS 7.0 N/D
IIS 6,0 N/D

Instalação

O elemento <serviceAutoStartProviders> está incluído na instalação padrão do IIS 7.5.

Instruções

Como configurar um provedor de início automático de serviço

Observação

Não há nenhuma interface direta do usuário que permita configurar o elemento <serviceAutoStartProviders> e, portanto, as etapas a seguir usarão o recurso editor de configuração do IIS.

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, clique no nome do servidor.

  3. No painel Página Inicial, clique duas vezes no recurso Editor de Configuração.
    Screenshot of Server Home pane displaying Configuration Editor selected.

  4. No menu suspenso Seção, expanda system.applicationHost e clique em serviceAutoStartProviders.
    Screenshot of Configuration Editor page showing system dot application Host tab expanded.

  5. Clique nas reticências (...) no lado direito do campo (Coleção).

  6. No painel Ações, selecione Adicionar.

  7. Quando a caixa de diálogo Editor de Coleção for exibida:

    • Insira o nome do provedor de início automático no campo de nome. Por exemplo:
      "MyAutostartProvider"
    • Insira o tipo gerenciado do assembly de início automático no campo de tipo. Por exemplo:
      "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
    • Feche a caixa de diálogo Editor de Coleção.
      Screenshot of Collection Editor dialog box showing fields for name and managed type of auto start provider.
  8. No painel Ações, clique em Aplicar.

Observação

Esta seção contém informações sobre como modificar as configurações do IIS usando o Editor de Configuração do IIS. Editar incorretamente as configurações do IIS pode danificar severamente a instalação do IIS. Portanto, certifique-se de seguir essas etapas com atenção. Para obter mais segurança, faça backup das configurações do IIS antes de usar o Editor de Configuração do IIS para fazer modificações. Para obter mais informações sobre como fazer backup de suas configurações do IIS e como usar o Editor de Configuração do IIS, consulte os seguintes tópicos:

Configuração

O elemento <serviceAutoStartProviders> é configurado no nível global no arquivo ApplicationHost.config.

Atributos

Nenhum.

Elementos filho

Elemento Descrição
add Elemento opcional.

Adiciona um provedor à coleção de provedores de início automático.
clear Elemento opcional.

Limpa a coleção de provedores de início automático.
remove Elemento opcional.

Remove um provedor da coleção de provedores de início automático.

Exemplo de configuração

O exemplo a seguir exibe um elemento <serviceAutoStartProviders> que adiciona um provedor de início automático personalizado à coleção.

<serviceAutoStartProviders>
   <add name="MyAutostartProvider" type="MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73" />
</serviceAutoStartProviders>

Exemplo de código

Os exemplos a seguir adicionam um provedor de exemplo à coleção de provedores de início automático.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/serviceAutoStartProviders /+"[name='MyAutostartProvider',type='MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73']" /commit:apphost

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection serviceAutoStartProvidersSection = config.GetSection("system.applicationHost/serviceAutoStartProviders");
         ConfigurationElementCollection serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.GetCollection();

         ConfigurationElement addElement = serviceAutoStartProvidersCollection.CreateElement("add");
         addElement["name"] = @"MyAutostartProvider";
         addElement["type"] = @"MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
         serviceAutoStartProvidersCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim serviceAutoStartProvidersSection As ConfigurationSection = config.GetSection("system.applicationHost/serviceAutoStartProviders")
      Dim serviceAutoStartProvidersCollection As ConfigurationElementCollection = serviceAutoStartProvidersSection.GetCollection

      Dim addElement As ConfigurationElement = serviceAutoStartProvidersCollection.CreateElement("add")
      addElement("name") = "MyAutostartProvider"
      addElement("type") = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
      serviceAutoStartProvidersCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var serviceAutoStartProvidersSection = adminManager.GetAdminSection("system.applicationHost/serviceAutoStartProviders", "MACHINE/WEBROOT/APPHOST");
var serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.Collection;

var addElement = serviceAutoStartProvidersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "MyAutostartProvider";
addElement.Properties.Item("type").Value = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
serviceAutoStartProvidersCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set serviceAutoStartProvidersSection = adminManager.GetAdminSection("system.applicationHost/serviceAutoStartProviders", "MACHINE/WEBROOT/APPHOST")
Set serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.Collection

Set addElement = serviceAutoStartProvidersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "MyAutostartProvider"
addElement.Properties.Item("type").Value = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
serviceAutoStartProvidersCollection.AddElement(addElement)

adminManager.CommitChanges()