Sdílet prostřednictvím


Hostitelské služby

Aby byla služba aktivní, musí být hostovaná v prostředí za běhu, které ji vytvoří a řídí její kontext a životnost. Služby WCF (Windows Communication Foundation) jsou navržené tak, aby běžely v jakémkoli procesu Windows, který podporuje spravovaný kód.

WCF poskytuje jednotný programovací model pro vytváření aplikací orientovaných na služby. Tento programovací model zůstává konzistentní a je nezávislý na prostředí za běhu, ve kterém je služba nasazena. V praxi to znamená, že kód pro vaše služby vypadá úplně stejně bez ohledu na možnost hostování.

Tyto možnosti hostování se liší od spuštění v konzolové aplikaci až po serverová prostředí, jako je služba Windows spuštěná v rámci pracovního procesu spravovaného službou Internetová informační služba (IIS) nebo službou aktivace procesů systému Windows (WAS). Vývojáři zvolí hostitelské prostředí, které splňuje požadavky na nasazení služby. Tyto požadavky mohou být odvozeny od platformy, na které je aplikace nasazena, přenosu, na kterém musí odesílat a přijímat zprávy, nebo na typ recyklace procesů a dalšího řízení procesů, které se vyžadují k zajištění odpovídající dostupnosti nebo v některých jiných požadavcích na správu nebo spolehlivost. V další části najdete informace a pokyny k možnostem hostování.

Možnosti hostování

Samoobslužný hostitel ve spravované aplikaci

Služby WCF je možné hostovat v libovolné spravované aplikaci. Jedná se o nejflexibilnější možnost, protože k nasazení vyžaduje nejmenší infrastrukturu. Kód pro službu vložíte do kódu spravované aplikace a pak vytvoříte a otevřete instanci ServiceHost služby, aby byla služba dostupná. Další informace naleznete v tématu Postupy: Hostování služby WCF ve spravované aplikaci.

Tato možnost umožňuje dva běžné scénáře: služby WCF spuštěné uvnitř konzolových aplikací a bohaté klientské aplikace, jako jsou aplikace založené na technologii Windows Presentation Foundation (WPF) nebo model Windows Forms (WinForms). Hostování služby WCF uvnitř konzolové aplikace je obvykle užitečné během fáze vývoje aplikace. Díky tomu je snadné ladit, snadno získat informace o trasování, zjistit, co se děje uvnitř aplikace, a snadno se pohybovat zkopírováním do nových umístění. Tato možnost hostování také usnadňuje bohaté klientské aplikace, jako jsou aplikace WPF a WinForms, komunikovat s vnějším světem. Například klient pro spolupráci mezi dvěma účastníky, který používá WPF pro své uživatelské rozhraní a také hostuje službu WCF, která umožňuje ostatním klientům připojit se k němu a sdílet informace.

Spravované služby Pro Windows

Tato možnost hostování se skládá z registrace domény aplikace (AppDomain), která hostuje službu WCF jako spravovanou službu Systému Windows (dříve označovanou jako služba NT), aby životnost procesu služby byla řízena správcem řízení služeb (SCM) pro služby Windows. Podobně jako možnost samoobslužného hostování vyžaduje tento typ hostitelského prostředí, aby byl v rámci aplikace napsaný nějaký kód hostování. Služba se implementuje jako služba Systému Windows i jako služba WCF tím, že ji způsobí, že dědí z ServiceBase třídy i z rozhraní kontraktu služby WCF. Pak ServiceHost se vytvoří a otevře v rámci přepsáné OnStart(String[]) metody a uzavřen v rámci přepsáné OnStop() metody. Instalační třída, která dědí z Installer , musí být také implementována, aby byl program nainstalován jako služba systému Windows nástrojem Installutil.exe. Další informace naleznete v tématu Postupy: Hostování služby WCF ve spravované službě Systému Windows. Scénář povolený možností hostování spravované služby systému Windows je to, že dlouhotrvající služba WCF hostovaná mimo službu IIS v zabezpečeném prostředí, které není aktivované zprávou. Životnost služby je řízena operačním systémem. Tato možnost hostování je dostupná ve všech verzích Windows.

IIS (Internetová informační služba)

Možnost hostování služby IIS je integrovaná s ASP.NET a používá funkce, které tyto technologie nabízejí, jako je recyklace procesů, vypnutí nečinnosti, monitorování stavu procesu a aktivace na základě zpráv. V operačních systémech Windows XP a Windows Server 2003 je toto upřednostňované řešení pro hostování aplikací webových služeb, které musí být vysoce dostupné a vysoce škálovatelné. Služba IIS také nabízí integrovanou možnost správy, kterou zákazníci očekávají od serverového produktu podnikové třídy. Tato možnost hostování vyžaduje, aby služba IIS byla správně nakonfigurovaná, ale nevyžaduje zápis hostitelského kódu jako součást aplikace. Další informace o tom, jak nakonfigurovat hostování služby IIS pro službu WCF, naleznete v tématu Postupy: Hostování služby WCF ve službě IIS.

Služby hostované službou IIS můžou používat pouze přenos HTTP. Její implementace ve službě IIS 5.1 zavedla určitá omezení v systému Windows XP. Aktivace založená na zprávách poskytovaná službou WCF službou IIS 5.1 v systému Windows XP blokuje komunikaci jakékoli jiné služby WCF hostované na stejném počítači pomocí portu 80. Služby WCF se můžou spouštět ve stejném procesu AppDomain/Application Pool/Worker jako jiné aplikace, pokud je hostuje služba IIS 6.0 ve Windows Serveru 2003. Vzhledem k tomu, že WCF i IIS 6.0 používají zásobník HTTP v režimu jádra (HTTP.sys), může služba IIS 6.0 sdílet port 80 s jinými službami WCF hostovanými na stejném počítači, na rozdíl od služby IIS 5.1.

Aktivační služba procesu systému Windows (WAS)

Služba aktivace procesu systému Windows (WAS) je nový mechanismus aktivace procesu systému Windows Server 2008, který je k dispozici také v systému Windows Vista. Zachovává známý procesový model služby IIS 6.0 (fondy aplikací a aktivaci procesů na základě zpráv) a funkce hostování (jako je rychlá ochrana selhání, monitorování stavu a recyklace), ale odebere závislost na protokolu HTTP z architektury aktivace. Služba IIS 7.0 používá was k provedení aktivace na základě zpráv přes protokol HTTP. Další komponenty WCF také připojují WAS k poskytování aktivace založené na zprávách přes ostatní protokoly, které WCF podporuje, jako jsou TCP, MSMQ a pojmenované kanály. To umožňuje aplikacím, které používají komunikační protokoly k používání funkcí služby IIS, jako je recyklace procesů, rychlá ochrana proti selhání a běžný konfigurační systém, který byl dostupný pouze pro aplikace založené na protokolu HTTP.

Tato možnost hostování vyžaduje, aby BYLA správně nakonfigurovaná, ale nevyžaduje, abyste v rámci aplikace napsali žádný kód hostování. Další informace o konfiguraci hostování WAS naleznete v tématu Postupy: Hostování služby WCF ve WAS.

Volba hostitelského prostředí

Následující tabulka shrnuje některé klíčové výhody a scénáře spojené s jednotlivými možnostmi hostování.

Hostitelské prostředí Obvyklé situace Klíčové výhody a omezení
Spravovaná aplikace (v místním prostředí) – Konzolové aplikace používané při vývoji.
– Bohaté klientské aplikace WinForm a WPF, které přistupují ke službám.
-Flexibilní.
- Snadné nasazení.
– Nejedná se o podnikové řešení pro služby.
Služby Systému Windows (dříve označované jako služby NT) – Dlouhotrvající služba WCF hostovaná mimo službu IIS. – Životnost procesu služby řízená operačním systémem, ne aktivovaná zprávou.
- Podporováno všemi verzemi Windows.
- Zabezpečené prostředí.
IIS 5.1, IIS 6.0 – Spuštění služby WCF souběžně s obsahem ASP.NET na internetu pomocí protokolu HTTP. - Recyklace procesů.
- Nečinné vypnutí.
- Monitorování stavu procesu.
- Aktivace na základě zpráv.
- Jenom HTTP.
Aktivační služba procesu systému Windows (WAS) – Spuštění služby WCF bez instalace služby IIS na internetu pomocí různých přenosových protokolů. – Služba IIS není povinná.
- Recyklace procesů.
- Nečinné vypnutí.
- Monitorování stavu procesu.
- Aktivace na základě zpráv.
– Funguje s protokolem HTTP, TCP, pojmenovanými kanály a MSMQ.
IIS 7,0 – Spuštění služby WCF s obsahem ASP.NET.
– Spuštění služby WCF na internetu pomocí různých přenosových protokolů.
- WAS výhody.
– Integrováno s obsahem ASP.NET a IIS.

Volba hostitelského prostředí závisí na verzi Systému Windows, na které je nasazená, a přenosy, které vyžaduje k odesílání zpráv, a na typu recyklace procesů a domény aplikace, které vyžaduje. Následující tabulka shrnuje data související s těmito požadavky.

Hostitelské prostředí Dostupnost platformy Podporované přenosy Recyklace procesů a domény AppDomain
Spravované aplikace ("v místním prostředí") Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

Net.tcp

Net.pipe

net.msmq
No
Služby Systému Windows (dříve označované jako služby NT) Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

Net.tcp

Net.pipe

net.msmq
No
IIS 5.1 Windows XP HTTP Ano
Internetová informační služba 6.0 Windows Server 2003 HTTP Ano
Aktivační služba procesu systému Windows (WAS) Windows Vista, Windows Server 2008 HTTP,

Net.tcp

Net.pipe

net.msmq
Ano

Je důležité si uvědomit, že spuštění služby nebo jakéhokoli rozšíření z nedůvěryhodného hostitele ohrožuje zabezpečení. Při otevírání ServiceHost zosobnění musí aplikace také zajistit, aby uživatel nebyl odhlášený, například uložením uživatele do WindowsIdentity mezipaměti.

Viz také