Sdílet prostřednictvím


Volba přenosu

Toto téma popisuje kritéria pro výběr ze tří hlavních přenosů, které jsou součástí windows Communication Foundation (WCF): HTTP, TCP a pojmenované kanály. WCF také obsahuje přenos front zpráv (označovaný také jako MSMQ), ale tento dokument nepokrývá fronty zpráv.

Programovací model WCF odděluje operace koncových bodů (jak je vyjádřeno ve smlouvě služby) od přenosového mechanismu, který spojuje dva koncové body. To vám dává flexibilitu při rozhodování o tom, jak zpřístupnit služby síti.

Ve WCF určíte, jak přenášet data přes síť mezi koncovými body pomocí vazby, která se skládá z posloupnosti vazeb prvků. Transport je reprezentován elementem vazby přenosu, který je součástí vazby. Vazba zahrnuje volitelné elementy vazby protokolu, jako je zabezpečení, požadovaný element vazby kodéru zpráv a požadovaný prvek vazby přenosu. Přenos odesílá nebo přijímá serializovanou formu zprávy do nebo z jiné aplikace.

Pokud se musíte připojit k existujícímu klientovi nebo serveru, možná nemáte na výběr použití konkrétního přenosu. Služby WCF je však možné zpřístupnit prostřednictvím několika koncových bodů, z nichž každá má jiný přenos. Pokud jeden přenos nepokrývá zamýšlenou cílovou skupinu pro vaši službu, zvažte zveřejnění služby přes více koncových bodů. Klientské aplikace pak můžou používat koncový bod, který je pro ně nejvhodnější.

Po výběru přenosu musíte vybrat vazbu, která ji používá. Můžete zvolit systémovou vazbu (viz Systémové vazby) nebo můžete vytvořit vlastní vazbu (viz Vlastní vazby). Můžete také vytvořit vlastní vazbu. Další informace naleznete v tématu Vytváření uživatelem definovaných vazeb.

Výhody jednotlivých přenosů

Tato část popisuje hlavní důvody pro výběr některé ze tří hlavních dopravních přenosů, včetně podrobného rozhodovacího diagramu pro výběr mezi nimi.

Kdy použít přenos HTTP

HTTP je protokol požadavku a odpovědi mezi klienty a servery. Nejběžnější aplikace se skládá z klientů webového prohlížeče, kteří komunikují s webovým serverem. Klient odešle požadavek na server, který naslouchá zprávám požadavků klienta. Když server obdrží požadavek, vrátí odpověď, která obsahuje stav požadavku. V případě úspěchu se vrátí volitelná data, například webová stránka, chybová zpráva nebo jiné informace. Další informace o protokolu HTTP naleznete v tématu HTTP - Hypertext Transfer Protocol.

Protokol HTTP není založený na připojení – po odeslání odpovědi se neudržuje žádný stav. Aby aplikace zpracovávala transakce s více stránkami, musí zachovat jakýkoli nezbytný stav.

Ve WCF je transportní vazba HTTP optimalizovaná pro interoperabilitu se staršími systémy než WCF. Pokud všechny komunikující strany používají WCF, jsou vazby založené na protokolu TCP nebo pojmenované kanály rychlejší. Další informace najdete v tématech NetTcpBinding a NetNamedPipeBinding.

Kdy použít přenos TCP

TCP je služba doručování založená na připojení, která je zaměřená na stream s kompletní detekcí a opravou chyb. Připojení ionové prostředky znamenají, že se před výměnou dat vytvoří komunikační relace mezi hostiteli. Hostitel je jakékoli zařízení v síti TCP/IP identifikované logickou IP adresou.

TCP poskytuje spolehlivé doručování dat a snadné použití. Konkrétně tcp upozorní odesílatele doručení paketů, zaručuje doručení paketů ve stejném pořadí, v jakém se odesílají, přeposílají ztracené pakety a zajistí, aby datové pakety nebyly duplikovány. Všimněte si, že toto spolehlivé doručování platí mezi dvěma uzly TCP/IP a není totéž jako WS-ReliableMessaging, které platí mezi koncovými body bez ohledu na to, kolik zprostředkujících uzlů může obsahovat.

Přenos WCF TCP je optimalizovaný pro scénář, kdy oba konce komunikace používají WCF. Tato vazba je nejrychlejší vazbou WCF pro scénáře, které zahrnují komunikaci mezi různými počítači. Výměny zpráv používají BinaryMessageEncodingBindingElement optimalizovaný přenos zpráv. PROTOKOL TCP poskytuje duplexní komunikaci a lze ji použít k implementaci duplexního kontraktu, i když je klient za překladem síťových adres (NAT).

Kdy použít přenos pojmenovaného potrubí

Pojmenovaný kanál je objekt v jádru operačního systému Windows, například část sdílené paměti, kterou mohou procesy použít ke komunikaci. Pojmenovaný kanál má název a dá se použít pro jednosměrnou nebo duplexní komunikaci mezi procesy na jednom počítači.

Pokud se vyžaduje komunikace mezi různými aplikacemi WCF na jednom počítači a chcete zabránit jakékoli komunikaci z jiného počítače, použijte pojmenované kanály přenosu. Dalším omezením je, že procesy spuštěné ze vzdálené plochy systému Windows mohou být omezeny na stejnou relaci Vzdálené plochy systému Windows, pokud nemají zvýšená oprávnění.

Upozorňující

Při použití přenosu pojmenovaného kanálu se slabou rezervací zástupných znaků URL na více webech hostovaných ve službě IIS může dojít k následující chybě: V aktivační službě Došlo k chybě NetPipeActivator protokolu net.pipe při pokusu o naslouchání webu 2, a proto je protokol pro web dočasně zakázaný. Další podrobnosti najdete ve zprávě o výjimce. URL: WeakWildcard:net.pipe:/<název> počítače/ Stav: Konfliktníregistration Výjimka: Název procesu: SMSvcHost ID procesu: 1076\

Rozhodovací body pro volbu dopravy

Následující tabulka popisuje společné rozhodovací body používané k výběru dopravy. Měli byste zvážit všechny další atributy a přenosy, které se vztahují na vaši aplikaci. Identifikujte atributy, které jsou pro vaši aplikaci důležité, identifikujte přenosy, které jsou příznivě přidruženy ke každému z atributů, a pak vyberte přenosy, které nejlépe fungují s vaší sadou atributů.

Atribut Popis Upřednostněné transporty
Diagnostika Diagnostika umožňuje automaticky zjišťovat problémy s připojením k přenosu. Všechny přenosy podporují schopnost odesílat informace o chybách, které popisují připojení. WCF ale neobsahuje diagnostické nástroje pro zkoumání problémů se sítí. Nic
Hostování Všechny koncové body WCF musí být hostované uvnitř aplikace. Služba IIS 6.0 a starší verze podporují pouze hostování aplikací, které používají přenos HTTP. V systému Windows Vista je přidána podpora pro hostování všech přenosů WCF, včetně TCP a pojmenovaných kanálů. Další informace naleznete v tématu Hostování v Internetová informační služba a hostování ve službě aktivace procesu systému Windows. HTTP
Kontrola Kontrola je schopnost extrahovat a zpracovávat informace ze zpráv během přenosu. Protokol HTTP odděluje směrování a řízení informací od dat, což usnadňuje vytváření nástrojů, které kontrolují a analyzují zprávy. Přenosy, které se snadno kontrolují, mohou také vyžadovat méně výpočetního výkonu v síťových zařízeních. Úroveň použitého zabezpečení má vliv na to, jestli je možné zkontrolovat zprávy. HTTP
Latence Latence je minimální doba potřebná k dokončení výměny zpráv. Všechny síťové operace mají latenci více nebo méně v závislosti na volbě přenosu. Použití duplexní nebo jednosměrné komunikace s přenosem, jehož nativní vzor výměny zpráv je požadavek-odpověď, například HTTP, může způsobit další latenci kvůli vynucené korelaci zpráv. V takovém případě zvažte použití přenosu, jehož nativní vzor výměny zpráv je duplexní, například TCP. TCP s názvem

Potrubí
Reach Dosah přepravy odráží, jak schopná je doprava ve spojení s jinými systémy. Pojmenovaná doprava potrubí má velmi málo dosahu; může se připojit pouze ke službám běžícím na stejném počítači. Přenosy TCP a HTTP mají vynikající dosah a mohou proniknout do některých konfigurací překladu adres (NAT) a brány firewall. Další informace najdete v tématu Práce s překlady adres (NAT) a branami firewall. HTTP, TCP
Zabezpečení Zabezpečení je schopnost chránit zprávy během přenosu poskytnutím důvěrnosti, integrity nebo ověřování. Důvěrnost chrání zprávu před kontrolou, integritou chrání zprávu před úpravou a ověřování poskytuje záruky o odesílateli nebo příjemci zprávy.

WCF podporuje zabezpečení přenosu na úrovni zpráv i na úrovni přenosu. Zabezpečení zpráv se skládá z přenosu, pokud přenos podporuje režim přenosu ve vyrovnávací paměti. Podpora zabezpečení přenosu se liší v závislosti na zvoleném přenosu. Přenosy HTTP, TCP a pojmenovaných potrubí mají přiměřenou paritu ve své podpoře zabezpečení přenosu.
Vše
Propustnost Propustnost měří množství dat, která lze přenášet a zpracovávat v zadaném časovém období. Podobně jako latence může zvolený přenos ovlivnit propustnost operací služby. Maximalizace propustnosti přenosu vyžaduje minimalizaci režie přenosu obsahu i minimalizaci času stráveného čekáním na dokončení výměn zpráv. Přenosy tcp i pojmenovaného kanálu přidávají do textu zprávy malou režii a podporují nativní duplexní obrazec, který snižuje čekání na odpovědi zpráv. TCP, pojmenovaný kanál
Nástroje Nástroje představují podporu aplikací třetích stran pro protokol pro vývoj, diagnostiku, hostování a další aktivity. Vývoj nástrojů a softwaru pro práci s protokolem HTTP znamená zvlášť velkou investici. HTTP

Viz také