Megosztás a következőn keresztül:


Szállítás kiválasztása

Ez a témakör a Windows Communication Foundation (WCF) három fő átvitelének kiválasztására vonatkozó kritériumokat ismerteti: HTTP, TCP és nevesített csövek. A WCF egy üzenetsor-továbbítást (más néven MSMQ-t) is tartalmaz, de ez a dokumentum nem fedi le az üzenetsor-továbbítást.

A WCF programozási modell elválasztja a végpontműveleteket (a szolgáltatási szerződésben kifejezett módon) a két végpontot összekötő átviteli mechanizmustól. Így rugalmasan döntheti el, hogyan teheti elérhetővé szolgáltatásait a hálózaton.

A WCF-ben megadhatja, hogyan továbbíthat adatokat a hálózaton keresztül a végpontok között egy kötés használatával, amely kötéselemek sorozatából áll. Az átvitelt egy átviteli kötési elem képviseli, amely a kötés része. A kötések opcionális protokollkötési elemeket tartalmaznak, például a biztonságot, egy kötelező üzenetkódoló kötési elemet és egy kötelező átviteli kötési elemet. Az átvitel egy üzenet szerializált formáját küldi vagy fogadja egy másik alkalmazásba vagy alkalmazásból.

Ha egy meglévő ügyfélhez vagy kiszolgálóhoz kell csatlakoznia, előfordulhat, hogy nem választhat egy adott átvitel használatát illetően. A WCF-szolgáltatások azonban több végponton keresztül is elérhetővé tehetők, mindegyik másik átvitellel. Ha egyetlen átvitel nem fedi le a szolgáltatás célközönségét, fontolja meg a szolgáltatás több végponton keresztüli felfedését. Az ügyfélalkalmazások ezután a számukra legmegfelelőbb végpontot használhatják.

Az átvitel kiválasztása után ki kell választania egy olyan kötést, amely azt használja. Választhat egy rendszer által biztosított kötést (lásd a rendszer által biztosított kötéseket), vagy létrehozhat saját egyéni kötést (lásd : Egyéni kötések). Saját kötést is létrehozhat. További információ: Felhasználó által definiált kötések létrehozása.

Az egyes szállítások előnyei

Ez a szakasz a három fő szállítás bármelyikének kiválasztásának fő okait ismerteti, beleértve a választás részletes döntési diagramját is.

Mikor érdemes HTTP-átvitelt használni?

A HTTP egy ügyfél- és kiszolgálóközi kérés-/válaszprotokoll. A leggyakoribb alkalmazás olyan webböngésző-ügyfelekből áll, amelyek egy webkiszolgálóval kommunikálnak. Az ügyfél kérést küld egy kiszolgálónak, amely figyeli az ügyfélkérési üzeneteket. Amikor a kiszolgáló kérést kap, egy választ ad vissza, amely tartalmazza a kérés állapotát. Sikeresség esetén a rendszer nem kötelező adatokat, például weblapot, hibaüzenetet vagy egyéb információt ad vissza. A HTTP protokollról további információt a HTTP – Hypertext Transfer Protocol című témakörben talál.

A HTTP-protokoll nem kapcsolatalapú – a válasz elküldése után a rendszer nem tart fenn állapotot. A többoldalas tranzakciók kezeléséhez az alkalmazásnak minden szükséges állapotot meg kell őriznie.

A WCF-ben a HTTP átviteli kötés a régi, nem WCF-rendszerekkel való együttműködésre van optimalizálva. Ha minden kommunikáló fél WCF-t használ, a TCP-alapú vagy elnevezett csöveken alapuló kötések gyorsabbak. További információ: NetTcpBinding és NetNamedPipeBinding.

Mikor érdemes használni a TCP-átvitelt?

A TCP egy kapcsolatalapú, streamorientált kézbesítési szolgáltatás, amely végpontok közötti hibaészlelést és javítást biztosít. Csatlakozás ion-alapú azt jelenti, hogy az adatok cseréje előtt kommunikációs munkamenet jön létre a gazdagépek között. A gazdagép egy logikai IP-cím által azonosított TCP/IP-hálózaton található bármely eszköz.

A TCP megbízható adatkézbesítést és egyszerű használatot biztosít. Pontosabban a TCP értesíti a csomagkézbesítés feladóját, garantálja, hogy a csomagok kézbesítése ugyanabban a sorrendben történik, amelyben azokat küldik, az elveszett csomagok újraküldése és az adatcsomagok duplikálása. Vegye figyelembe, hogy ez a megbízható kézbesítés két TCP/IP-csomópont között érvényes, és nem ugyanaz, mint a végpontok közötti WS-ReliableMessaging szolgáltatás, függetlenül attól, hogy hány köztes csomópontot tartalmazhatnak.

A WCF TCP-átvitel arra a forgatókönyvre van optimalizálva, amelyben a kommunikáció mindkét vége WCF-t használ. Ez a kötés a leggyorsabb WCF-kötés olyan forgatókönyvekhez, amelyek különböző gépek közötti kommunikációt foglalnak magukban. Az üzenetcserék az BinaryMessageEncodingBindingElement optimalizált üzenetátvitelt használják. A TCP kétoldalas kommunikációt biztosít, így kétoldalas szerződések megvalósítására is használható, még akkor is, ha az ügyfél a hálózati címfordítás (NAT) mögött áll.

Mikor érdemes használni a nevesített csőátvitelt?

A nevesített cső a Windows operációs rendszer kernelében található objektum, például a megosztott memória egy olyan szakasza, amelyet a folyamatok a kommunikációhoz használhatnak. A névvel ellátott csőnek van egy neve, és egyirányú vagy kétirányú kommunikációra használható egyetlen gépen lévő folyamatok között.

Ha egy számítógépen különböző WCF-alkalmazások közötti kommunikációra van szükség, és meg szeretné akadályozni a másik gépről érkező kommunikációt, akkor használja a nevesített csövek átvitelét. További korlátozás, hogy a Windows Távoli asztalról futó folyamatok csak akkor korlátozhatók ugyanarra a Windows távoli asztali munkamenetre, ha emelt szintű jogosultságokkal rendelkeznek.

Figyelmeztetés

Ha az elnevezett csőátvitelt gyenge helyettesítő URL-címmel használja több, az IIS-ben üzemeltetett webhelyen, a következő hiba fordulhat elő: Hiba történt a net.pipe protokoll "NetPipeActivator" aktiválási szolgáltatásában a "2" hely figyelése közben, így a protokoll átmenetileg le van tiltva a webhelyen. További részletekért tekintse meg a kivételről szóló üzenetet. URL: WeakWildcard:net.pipe:/<machine name>/ Status: ConflictingRegistration Exception: Process Name: SMSvcHost Process ID: 1076\

Döntési pontok a közlekedés kiválasztásához

Az alábbi táblázat a szállítás kiválasztásához használt gyakori döntési pontokat ismerteti. Vegye figyelembe az alkalmazásra vonatkozó további attribútumokat és átviteleket. Azonosítsa az alkalmazás számára fontos attribútumokat, azonosítsa azokat az átviteleket, amelyek kedvezően társítják az egyes attribútumokat, majd válassza ki az attribútumkészlettel legjobban működő átviteleket.

Attribútum Leírás Előnyben részesített szállítások
Diagnosztika A diagnosztika lehetővé teszi az átviteli csatlakozási problémák automatikus észlelését. Minden átvitel támogatja a kapcsolatot leíró hibainformációk küldését. A WCF azonban nem tartalmaz hálózati problémák kivizsgálására szolgáló diagnosztikai eszközöket. Egyik sem
Üzemeltetés Minden WCF-végpontot egy alkalmazásban kell üzemeltetni. Az IIS 6.0-s és korábbi verziói csak a HTTP-átvitelt használó alkalmazások üzemeltetését támogatják. Windows Vista rendszeren a rendszer támogatja az összes WCF-átvitelt, beleértve a TCP-t és a nevesített csöveket is. További információ: Üzemeltetés az Internet Information Servicesben és üzemeltetés a Windows Folyamataktiválási szolgáltatásban. HTTP
Vizsgálat Az ellenőrzés az üzenetekből származó információk kinyerésének és feldolgozásának képessége az átvitel során. A HTTP protokoll elkülöníti az útválasztási és vezérlési információkat az adatoktól, így egyszerűbbé válik az üzeneteket vizsgáló és elemző eszközök létrehozása. A könnyen megvizsgálható szállítások esetében a hálózati berendezések feldolgozási teljesítménye is csökkenhet. Az alkalmazott biztonsági szint befolyásolja, hogy az üzenetek vizsgálhatók-e. HTTP
Késés A késés az üzenetváltás befejezéséhez szükséges minimális idő. Minden hálózati művelet több vagy kevesebb késéssel rendelkezik az átviteli lehetőségektől függően. Ha kétoldalas vagy egyirányú kommunikációt használ egy olyan átvitelsel, amelynek natív üzenetcserés mintája a kérés-válasz, például HTTP, további késést okozhat az üzenetek kényszerített korrelációja miatt. Ebben az esetben érdemes lehet olyan átvitelt használni, amelynek natív üzenetcserés mintája kétoldalas, például TCP. TCP, névvel elnevezve

Cső
Elérés A szállítás elérése azt tükrözi, hogy a szállítás milyen képes más rendszerekkel való kapcsolódásra. A nevesített csőszállítás nagyon kevés; csak az ugyanazon a gépen futó szolgáltatásokhoz tud csatlakozni. A TCP és a HTTP-átvitel egyaránt kiválóan elérhető, és áthatol bizonyos NAT- és tűzfalkonfigurációkon. További információ: A NAT-k és a tűzfalak használata. HTTP, TCP
Biztonság A biztonság az üzenetek átvitel közbeni védelmének képessége a bizalmasság, az integritás vagy a hitelesítés biztosításával. A bizalmasság megvédi az üzeneteket a vizsgálattól, az integritás megvédi az üzeneteket a módosítástól, és a hitelesítés biztosítja az üzenet feladóját vagy fogadóját.

A WCF támogatja az átvitel biztonságát az üzenet szintjén és az átvitel szintjén is. Ha az átvitel támogatja a pufferelt átviteli módot, az üzenetbiztonsági rendszer egy átvitelt ír össze. Az átviteli biztonság támogatása a kiválasztott szállítástól függően változik. A HTTP-, TCP- és elnevezett csőátvitelek ésszerű paritásossággal rendelkeznek az átviteli biztonság támogatásában.
Mind
Átfutás Az átviteli sebesség a megadott időszakban továbbítható és feldolgozható adatok mennyiségét méri. A késéshez hasonlóan a kiválasztott átvitel is befolyásolhatja a szolgáltatásműveletek átviteli sebességét. Az átvitel átviteli sebességének maximalizálásához minimalizálni kell a tartalom továbbításának többletterhelését, valamint minimalizálni kell az üzenetváltásokra való várakozással töltött időt. Mind a TCP, mind a nevesített csőátvitelek kis többletterhelést okoznak az üzenettörzsben, és támogatnak egy natív kétoldalas alakzatot, amely csökkenti az üzenetre adott válaszok várakozását. TCP, névvel ellátott cső
Eszközök Az eszközkezelés külső alkalmazástámogatást jelent a fejlesztési, diagnosztikai, üzemeltetési és egyéb tevékenységek protokolljaihoz. A HTTP protokollal való együttműködéshez szükséges eszközök és szoftverek fejlesztése különösen nagy befektetést jelent. HTTP

Lásd még