Hostování aplikace, která je ve frontě

Služba aktivace procesu systému Windows (WAS) spravuje aktivaci a životnost pracovních procesů, které obsahují aplikace, které hostují služby Wcf (Windows Communication Foundation). Procesový model WAS generalizuje model procesu SLUŽBY IIS 6.0 pro server HTTP odebráním závislosti na protokolu HTTP. To umožňuje službám WCF používat protokoly HTTP i jiné protokoly než HTTP, například net.msmq a msmq.formatname, v hostitelském prostředí, které podporuje aktivaci na základě zpráv a nabízí možnost hostovat velký počet aplikací na daném počítači.

WAS obsahuje aktivační službu pro Řízení front zpráv (MSMQ), která aktivuje aplikaci, když je jedna nebo více zpráv umístěna do jedné z front používaných touto aplikací. Aktivační služba MSMQ je služba NT, která se ve výchozím nastavení automaticky spouští.

Další informace o WAS a jejích výhodách naleznete v tématu Hostování ve službě aktivace procesu systému Windows. Další informace o MSMQ naleznete v Přehled front.

Adresování front ve WAS

Aplikace WAS mají adresy URI (Uniform Resource Identifier). Adresy aplikací mají dvě části: předponu základního identifikátoru URI a relativní adresu (cestu) specifickou pro aplikaci. Tyto dvě části poskytují externí adresu aplikace při spojení. Předpona základního identifikátoru URI je vytvořena z vazby webu a používá se pro všechny aplikace v rámci webu, například net.msmq://localhost, msmq.formatname://localhost nebo net.tcp://localhost. Adresy aplikací se pak vytvářejí tak, že převezmou fragmenty cest specifické pro aplikaci (například /applicationOne) a připojíte je k předponě základního identifikátoru URI, aby se dostaly k úplnému identifikátoru URI aplikace, například net.msmq://localhost/applicationOne.

Aktivační služba MSMQ používá identifikátor URI aplikace k porovnání fronty, kterou musí aktivační služba MSMQ monitorovat pro zprávy. Když se spustí aktivační služba MSMQ, provede výčet všech veřejných a soukromých front na počítači, ze kterého je nakonfigurován přijímat zprávy, a sleduje je kvůli příchozím zprávám. Každých 10 minut služba aktivace MSMQ aktualizuje seznam front, které se mají monitorovat. Když se ve frontě najde zpráva, aktivační služba hledá nejdelší identifikátor URI aplikace odpovídající názvu fronty s použitím vazby net.msmq a poté aktivuje aplikaci.

Poznámka:

Aktivovaná aplikace se musí shodovat s předponou názvu fronty (nejdelší shoda).

Například název fronty je: msmqWebHost/orderProcessing/service.svc. Pokud má aplikace 1 virtuální adresář /msmqWebHost/orderProcessing se službou.svc a aplikace 2 má virtuální adresář /msmqWebHost s pod ním orderProcessing.svc, aplikace 1 je aktivována. Pokud se aplikace 1 odstraní, aktivuje se aplikace 2.

Poznámka:

Při vytvoření fronty se všechny zprávy odeslané do ní neaktivují, dokud aktivační služba MSMQ neaktualizuje seznam front, což je nejvýše 10 minut od okamžiku vytvoření fronty. Restartováním aktivační služby se aktualizuje také seznam front.

Vliv soukromých a veřejných front na adresování

Aktivační služba MSMQ nerozlišuje mezi sledováním privátních a veřejných front. Proto nemůžete mít veřejné a soukromé fronty se stejným názvem. Pokud to uděláte, může se aktivovat aplikace hostovaná na webu, která bude číst z některé z front.

Konfigurace fronty pro aktivaci

Aktivační služba MSMQ běží jako SÍŤOVÁ SLUŽBA. Je to služba, která monitoruje fronty pro aktivaci aplikací. Aby síťová služba mohla aktivovat aplikace z fronty, musí fronta poskytovat síťové službě přístup k náhledu zpráv ve svém seznamu řízení přístupu (ACL).

Jedovaté zasílání zpráv

Zpracování otrávených zpráv ve WCF zpracovává kanál, který nejen zjistí, že je zpráva otrávená, ale vybere dispozici na základě konfigurace uživatele. V důsledku toho se ve frontě nachází jediná zpráva. Aplikace hostovaná na webu opakovaně ukončí svou činnost a zpráva se přesune do fronty pro opětovné pokusy. V momentě určeném zpožděním cyklu opakování se zpráva přesune z fronty opakování do hlavní fronty, aby se pokusila znovu. Aby to ale fungovalo, je nezbytné, aby byl zařazený kanál aktivní. Pokud je aplikace recyklována službou WAS, zůstane zpráva ve frontě opakování, dokud do hlavní fronty nepřijde další zpráva, která aktivuje aplikaci ve frontě. Alternativním řešením v tomto případě je ruční přesunutí zprávy z fronty opakování zpět do hlavní fronty pro opětovnou aktivaci aplikace.

Dílčí fronta a systémová fronta – varování

Aplikaci hostovanou službou WAS nelze aktivovat na základě zpráv v systémové frontě, jako je fronta nedoručených zpráv celého systému nebo dílčí fronty, jako jsou například podřízené fronty. Toto omezení platí pro tuto verzi produktu.

Viz také