Recurso Início automático
O recurso início automático do AppFabric é baseado no recurso início automático dos Serviços de Informações da Internet (IIS) 7.5, que são incluídos no Windows 7 e no Windows Server 2008 R2. No IIS, você pode configurar um pool de aplicativos ou alguns de seus aplicativos para iniciar automaticamente quando o serviço do IIS é iniciado. O recurso início automático do AppFabric amplia essa funcionalidade para que você possa configurar todos ou alguns serviços dentro de um aplicativo para iniciar automaticamente quando o aplicativo é iniciado.
Benefícios do Recurso Início Automático
Quando você habilita o recurso início automático de um serviço, o serviço funciona assim que o aplicativo ao qual ele pertence é iniciado e antes que o serviço receba a primeira mensagem WCF do cliente. Por isso, o serviço processa a primeira mensagem rapidamente, pois ele já está inicializado. Por exemplo, suponha que um serviço precise conectar-se a um banco de dados para ler centenas de linhas de dados para preencher uma estrutura de dados em cache .NET Framework ao ser criado pela primeira vez. O processo de inicialização demora muito tempo antes de o serviço estar pronto para começar a operação real. Se você usar início automático neste caso, o serviço será inicializado antes de receber a primeira chamada.
O componente HTTP.SYS do IIS processa solicitações HTTP e o Serviço de Ativação de Processos do Windows (WAS) processa TCP, Pipes nomeados e solicitações de MSMQ usando adaptadores de escuta personalizados do WCF que estão incluídos no IIS. O adaptador de escuta estabelece comunicação entre WAS e um serviço que usa protocolos não HTTP. Para oferecer suporte a mensagens recebidas por meio de outro protocolo, você tem que desenvolver adaptadores de escuta personalizados e outros módulos de suporte, o que pode ser uma tarefa complexa. Para obter mais informações sobre adaptadores de escuta, consulte Adaptadores de Escuta (a página pode estar em inglês) (https://go.microsoft.com/fwlink/?LinkId=160359). Com suporte ao início automático, você pode instalar no IIS aplicativos que reconheçam qualquer protocolo. Se você habilitar início automático para esses aplicativos implantados, o WAS os ativará e os manterá ativos no processo de operador.
Cenários de Início automático
Os serviços que usam o recurso início automático oferecem suporte a cenários como:
O computador no qual um aplicativo está implantado é reinicializado. IIS, WAS, pool de aplicativos, aplicativo e serviços são configurados para iniciar automaticamente com o computador. Os serviços são automaticamente iniciados nesse cenário quando o aplicativo é reiniciado. Se o aplicativo for configurado para iniciar automaticamente todos os serviços, todos os serviços no aplicativo serão iniciados automaticamente, caso contrário, somente os serviços especificados no arquivo Web.config serão iniciados.
Alguns protocolos, como o protocolo de comunicado WS-Discovery, exigem que aplicativos estejam sempre disponíveis. Quando você habilita o início automático para um aplicativo e serviços no aplicativo, o recurso início automático do Windows Server AppFabric inicia automaticamente os serviços sempre que o aplicativo que contém os serviços é iniciado.
O pool de aplicativos ao qual um serviço pertence detecta que muitos dos seus processos de operador ficaram incompatíveis em um período de tempo especificado e inicia o processo de proteção rápida contra falha. O recurso início automático oferecerá suporte à proteção rápida contra falha se um processo falhar mais do que um número configurável de vezes em um período de tempo especificado, o aplicativo e seus serviços não reiniciarão depois que o limite de proteção rápida contra falha for ultrapassado.
Cenário de reinício de computador
A seguinte lista contém etapas típicas envolvidas em um cenário de amostra de reinício de computador ao qual o recurso início automático oferece suporte:
O WAS (Serviço de Ativação de Processo do Windows) iniciará se o serviço estiver configurado para iniciar automaticamente. Você pode configurar WAS usando o applet Services em Ferramentas Administrativas.
WAS inicia todos os pools de aplicativos que são configurados para iniciar automaticamente. A configuração startMode nesses pools de aplicativos é definida como AlwaysRunning no arquivo ApplicationHost.config.
<applicationPools> <add name=”MyAppPool” startMode=”AlwaysRunning” /> </applicationPools>
O gerenciador de aplicativo no WAS carrega todos os aplicativos que são configurados para iniciar automaticamente. O atributo serviceAutoStartEnabled é definido como true para esses aplicativos no arquivo ApplicationHost.config.
<sites> <site name="MySite" id="1"> <application path="/" serviceAutoStartEnabled=”true” serviceAutoStartProvider=”Service” serviceAutoStartMode=”All/Custom”> <virtualDirectory path="/" physicalPath="C:\MySite" /> </application> </site> </sites>
O processo de inicialização de aplicativo chama o módulo de início automático, que inicia os serviços configurados para iniciar automaticamente.
O atributo serviceAutoStartProvider é um ponto de extensibilidade do IIS, que você pode usar para iniciar objetos personalizados. O programa de instalação do Windows Server AppFabric instala o provedor de Serviços e amplia o esquema do IIS para adicionar o atributo serviceAutoStartMode.
Se o serviceAutoStartMode para um aplicativo for definido como Todos, então todos no aplicativo serão iniciados. Se a configuração serviceAutoStartMode para um aplicativo estiver definida como Personalizado, somente os serviços especificados no arquivo Web.config serão iniciados.
O módulo início automático usa o valor da configuração relativeVirtualPath para carregar um serviço. O fragmento de configuração a seguir é do arquivo Web.config que tem as configurações relativeVirtualPath definidas para dois serviços. O relativeVirtualPath de um serviço é o caminho para o serviço relativo ao aplicativo que contém o serviço.
// a sample Web.config fragment with two services configured to use the auto-start feature. <Microsoft.ProcessServer.Hosting> <serviceAutoStart> <add relativeVirtualPath =”/Calendar/Appointments.xamlx” > <add relativeVirtualPath =”/BookStore/ShoppingCart.svc” > </serviceAutoStart> </Microsoft.ProcessServer.Hosting>
Dica
As configurações de início automático são armazenadas no arquivo Web.config e as configurações de início automático para pools de aplicativos e aplicativos são armazenadas no arquivo ApplicationHost.config.
Configurando Início automático
Você pode usar extensões ou cmdlets do Gerenciador do IIS que o AppFabric fornece para configurar o recurso início automático para um serviço WCF ou WF. Para obter instruções detalhadas sobre como configurar o recurso início automático, consulte os tópicos Configurar o Início automático usando o Gerenciador do IIS e Configurar o Início automático usando Cmdlets do Windows Server AppFabric na seção Configurando o início automático.
Observação
Se o recurso início automático festiver habilitado para um serviço, o IIS ignorará a configuração Tempo Limite Ocioso no pool de aplicativos e no aplicativo que usa o pool de aplicativos. O processo de operador associado ao pool de aplicativos permanece na memória mesmo depois que o pool de aplicativos fica ocioso por mais tempo que o valor Tempo Limite Ocioso.
Aviso
Se o código de inicialização for gravado de forma ineficaz para um serviço e a inicialização demorar muito tempo, o período de tempo de inicializado do IIS poderá expirar e desligar o processo em seu estado atual. Uma boa decisão de design pode ser usar vários threads de dentro do código de inicialização para seu serviço se ele estiver sendo executado em computadores com mais de uma CPU.
Consulte também
Conceitos
Configurando o início automático
2011-12-05