Compartilhar via


Arquitetura de Ativação do WAS

Este tópico itemiza e discute os componentes do Serviço de Ativação de Processo do Windows (também conhecido como WAS).

Componentes de ativação

WAS consiste em vários componentes arquitetônicos:

  • Adaptadores de ouvinte. Serviços do Windows que recebem mensagens em protocolos de rede específicos e se comunicam com o WAS para rotear mensagens de entrada para o processo de trabalho correto.

  • FOI. O serviço Windows que gerencia a criação e o tempo de vida dos processos de trabalho.

  • O executável do processo de trabalho genérico (w3wp.exe).

  • Gerenciador de aplicativos. Gerencia a criação e o tempo de vida dos domínios de aplicativo que hospedam aplicativos no processo de trabalho.

  • Manipuladores de protocolo. Componentes específicos do protocolo que são executados no processo de trabalho e gerenciam a comunicação entre o processo de trabalho e os adaptadores de ouvinte individuais. Existem dois tipos de manipuladores de protocolo: manipuladores de protocolo de processo e manipuladores de protocolo AppDomain.

Quando WAS ativa uma instância de processo de trabalho, ela carrega os manipuladores de protocolo de processo necessários no processo de trabalho e usa o gerenciador de aplicativos para criar um domínio de aplicativo para hospedar o aplicativo. O domínio do aplicativo carrega o código do aplicativo, bem como os manipuladores de protocolo AppDomain que os protocolos de rede usados pelo aplicativo exigem.

Captura de tela que mostra a arquitetura WAS.

Adaptadores do ouvinte

Adaptadores de ouvinte são serviços do Windows individuais que implementam a lógica de comunicação de rede usada para receber mensagens usando o protocolo de rede no qual escutam. A tabela a seguir lista os adaptadores de ouvinte para protocolos WCF (Windows Communication Foundation).

Nome do serviço do adaptador do ouvinte Protocolo Anotações
W3SVC http Componente comum que fornece ativação HTTP para IIS 7.0 e WCF.
NetTcpActivator net.tcp Depende do serviço NetTcpPortSharing.
NetPipeActivator net.pipe
NetMsmqActivator net.msmq Para uso com aplicativos de Enfileiramento de Mensagens baseados em WCF.
NetMsmqActivator msmq.formatname Fornece compatibilidade retroativa com aplicativos de Enfileiramento de Mensagens existentes.

Os adaptadores de ouvinte para protocolos específicos são registrados durante a instalação no arquivo applicationHost.config, conforme mostrado no exemplo XML a seguir.

<system.applicationHost>  
    <listenerAdapters>  
        <add name="http" />  
        <add name="net.tcp"
          identity="S-1-5-80-3579033775-2824656752-1522793541-1960352512-462907086" />  
         <add name="net.pipe"
           identity="S-1-5-80-2943419899-937267781-4189664001-1229628381-3982115073" />  
          <add name="net.msmq"
            identity="S-1-5-80-89244771-1762554971-1007993102-348796144-2203111529" />  
           <add name="msmq.formatname"
             identity="S-1-5-80-89244771-1762554971-1007993102-348796144-2203111529" />  
    </listenerAdapters>  
</system.applicationHost>  

Manipuladores de protocolo

Os manipuladores de protocolo Process e AppDomain para protocolos específicos são registrados no arquivo Web.config em nível de máquina.

<system.web>  
   <protocols>  
      <add name="net.tcp"
        processHandlerType=  
         "System.ServiceModel.WasHosting.TcpProcessProtocolHandler"  
        appDomainHandlerType=  
         "System.ServiceModel.WasHosting.TcpAppDomainProtocolHandler"  
        validate="false" />  
      <add name="net.pipe"
        processHandlerType=  
         "System.ServiceModel.WasHosting.NamedPipeProcessProtocolHandler"  
          appDomainHandlerType=  
           "System.ServiceModel.WasHosting.NamedPipeAppDomainProtocolHandler"/>  
      <add name="net.msmq"  
        processHandlerType=  
         "System.ServiceModel.WasHosting.MsmqProcessProtocolHandler"  
        appDomainHandlerType=  
         "System.ServiceModel.WasHosting.MsmqAppDomainProtocolHandler"  
        validate="false" />  
   </protocols>  
</system.web>  

Consulte também