WAS-aktiveringsarkitektur
I det här avsnittet beskrivs komponenterna i Windows Process Activation Service (även kallat WAS).
Aktiveringskomponenter
WAS består av flera arkitektoniska komponenter:
Lyssnarkort. Windows-tjänster som tar emot meddelanden i specifika nätverksprotokoll och kommunicerar med WAS för att dirigera inkommande meddelanden till rätt arbetsprocess.
VAR. Windows-tjänsten som hanterar skapandet och livslängden för arbetsprocesser.
Körbar allmän arbetsprocess (w3wp.exe).
Programhanterare. Hanterar skapandet och livslängden för programdomäner som är värdar för program i arbetsprocessen.
Protokollhanterare. Protokollspecifika komponenter som körs i arbetsprocessen och hanterar kommunikationen mellan arbetsprocessen och de enskilda lyssnarkorten. Det finns två typer av protokollhanterare: processprotokollhanterare och AppDomain-protokollhanterare.
När WAS aktiverar en arbetsprocessinstans läser den in de processprotokollhanterare som krävs i arbetsprocessen och använder programhanteraren för att skapa en programdomän som värd för programmet. Programdomänen läser in programmets kod samt de AppDomain-protokollhanterare som de nätverksprotokoll som används av programmet kräver.
Lyssnarkort
Lyssnarkort är enskilda Windows-tjänster som implementerar nätverkskommunikationslogik som används för att ta emot meddelanden med hjälp av nätverksprotokollet som de lyssnar på. I följande tabell visas lyssnarkorten för WCF-protokoll (Windows Communication Foundation).
Namn på lyssnarkorttjänst | Protokoll | Kommentar |
---|---|---|
W3SVC | http | Gemensam komponent som tillhandahåller HTTP-aktivering för både IIS 7.0 och WCF. |
NetTcpActivator | net.tcp | Beror på tjänsten NetTcpPortSharing. |
NetPipeActivator | net.pipe | |
NetMsmqActivator | net.msmq | För användning med WCF-baserade Message Queuing-program. |
NetMsmqActivator | msmq.formatname | Ger bakåtkompatibilitet med befintliga Message Queuing-program. |
Lyssnarkort för specifika protokoll registreras under installationen i filen applicationHost.config, enligt följande XML-exempel.
<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>
Protokollhanterare
Process- och AppDomain-protokollhanterare för specifika protokoll registreras i web.config-filen på datornivå.
<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>