Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A WCF WEB HTTP-programozási modell lehetővé teszi a fejlesztők számára, hogy a Windows Communication Foundation (WCF) webszolgáltatásait egyszerű HTTP-kéréseken keresztül tegyék elérhetővé soap nélkül. A WCF WEB HTTP programozási modell a meglévő WCF bővíthetőségi modellre épül. A következő osztályokat határozza meg:
Programozási modell:
Csatornák és diszpécserinfrastruktúra:
Segédprogramosztályok és bővíthetőségi pontok:
AspNetCacheProfileAttribute
A AspNetCacheProfileAttributeszolgáltatásműveletre alkalmazott ASP.NET kimeneti gyorsítótár-profilt jelzi a konfigurációs fájlban, amelyet az ASP .NET kimeneti gyorsítótárban lévő műveletből érkező válaszok gyorsítótárazásához kell használni. Ez a tulajdonság csak egy paramétert használ, a gyorsítótárprofil nevét, amely megadja a konfigurációs fájl gyorsítótár-beállításait.
WebGetAttribute
Az WebGetAttribute attribútum egy szolgáltatásművelet megjelölésére szolgál, amely a HTTP GET-kérelmekre válaszol. Ez egy passzív műveleti viselkedés (a IOperationBehavior metódusok nem tesznek semmit), amely metaadatokat ad hozzá a művelet leírásához. A WebGetAttribute művelet alkalmazása csak akkor lép érvénybe, ha a művelet leírásában (pontosabban a WebHttpBehavior) ezt a metaadatokat kereső viselkedés hozzáadódik a szolgáltatás viselkedésgyűjteményéhez. Az WebGetAttribute attribútum az alábbi táblázatban szereplő választható paramétereket veszi fel.
| Paraméter | Leírás |
|---|---|
BodyStyle |
Meghatározza, hogy az adott attribútum alkalmazásával a szolgáltatási műveletre küldött és fogadott kérések és válaszok körülölelésre kerüljenek-e. |
RequestFormat |
A kérelemüzenetek formázását szabályozza. |
ResponseFormat |
A válaszüzenetek formázását szabályozza. |
UriTemplate |
Megadja azt az URI-sablont, amely azt szabályozza, hogy az attribútum által alkalmazott szolgáltatásművelethez milyen HTTP-kérelmek lesznek leképezve. |
WebHttpBinding
Az WebHttpBinding osztály magában foglalja az XML, JSON és a nyers bináris adatok támogatását a WebMessageEncodingBindingElement használatával. Egy HttpsTransportBindingElement, HttpTransportBindingElement és WebHttpSecurity objektumból áll. A WebHttpBinding úgy készült, hogy WebHttpBehavior-val/-vel együtt legyen használva.
Web-meghívási attribútum
Az WebInvokeAttribute attribútum hasonló a WebGetAttributeszolgáltatáshoz, de a szolgáltatásműveleteket a GET-nek nem minősülő HTTP-kérelmekre válaszolóként jelöli meg. Ez egy passzív műveleti viselkedés (a IOperationBehavior metódusok nem tesznek semmit), amely metaadatokat ad hozzá a művelet leírásához. A WebInvokeAttribute művelet alkalmazása csak akkor lép érvénybe, ha a művelet leírásában (pontosabban a WebHttpBehavior) ezt a metaadatokat kereső viselkedés hozzáadódik a szolgáltatás viselkedésgyűjteményéhez.
Az WebInvokeAttribute attribútum az alábbi táblázatban szereplő választható paramétereket veszi fel.
| Paraméter | Leírás |
|---|---|
BodyStyle |
Meghatározza, hogy az adott attribútum alkalmazásával a szolgáltatási műveletre küldött és fogadott kérések és válaszok körülölelésre kerüljenek-e. |
Method |
A szolgáltatásművelethez hozzárendelt HTTP-metódust adja meg. |
RequestFormat |
A kérelemüzenetek formázását szabályozza. |
ResponseFormat |
A válaszüzenetek formázását szabályozza. |
UriTemplate |
Megadja azt az URI-sablont, amely azt szabályozza, hogy az attribútum által alkalmazott szolgáltatásművelethez milyen GET-kérelmek lesznek leképezve. |
UriTemplate
Az UriTemplate osztály lehetővé teszi a szerkezetileg hasonló URI-k definiálását. A sablonok két részből, egy elérési útból és egy lekérdezésből állnak. Az elérési utak perjellel (/) tagolt szegmensekből állnak. Minden szegmens rendelkezhet konstans értékkel, változó értékkel (kapcsos zárójelek között írva [{ }], amely pontosan egy szegmens tartalmának felel meg), vagy egy helyettesítő karakterrel (csillagként [*], amely az "elérési út többi részével" egyezik), amelynek az elérési út végén kell megjelennie. A lekérdezési kifejezés teljes egészében kihagyható. Ha van ilyen, a név/érték párok rendezetlen sorozatát adja meg. A lekérdezési kifejezés elemei lehetnek literális párok (?x=2) vagy változó párok (?x={value}). A párosítatlan értékek nem engedélyezettek. UriTemplate A WCF WEB HTTP programozási modell belsőleg használja adott URI-k vagy URI-csoportok szolgáltatásműveletekre való leképezéséhez.
UriSablonTáblázat
Az UriTemplateTable osztály a fejlesztő által választott objektumhoz kötött asszociatív objektumkészletet UriTemplate jelöli. Lehetővé teszi a jelölt egységes erőforrás-azonosítók (URI-k) egyezését a készlet sablonjaival, és lekérheti az egyező sablonokhoz társított adatokat. UriTemplateTable A WCF WEB HTTP programozási modell belsőleg használja adott URI-k vagy URI-csoportok szolgáltatásműveletekre való leképezéséhez.
WebServiceHost
WebServiceHost kibővíti a ServiceHost annak érdekében, hogy egyszerűbbé tegye a nem-SOAP alapú web szolgáltatások üzemeltetését. Ha WebServiceHost nem talál végpontokat a szolgáltatás leírásában, automatikusan létrehoz egy alapértelmezett végpontot a szolgáltatás alapcímén. Az alapértelmezett HTTP-végpont létrehozásakor a WebServiceHost HTTP súgólap és a Web Services Description Language (WSDL) GET funkciója is letiltható, hogy a metaadat-végpont ne zavarja az alapértelmezett HTTP-végpontot. WebServiceHost emellett biztosítja, hogy minden WebHttpBinding végponton a szükséges WebHttpBehavior csatolva legyen. WebServiceHost Végül automatikusan konfigurálja a végpont kötését a társított Internet Information Services (IIS) biztonsági beállításokkal való együttműködésre, ha biztonságos virtuális címtárban használják.
WebServiceHostFactory
Az WebServiceHostFactory osztály dinamikusan hoz létre egy WebServiceHost szolgáltatást az Internet Information Services (IIS) vagy a Windows Folyamataktiválási szolgáltatás (WAS) alatt. Ellentétben a saját üzemeltetésű szolgáltatásokkal, ahol az üzemeltetési alkalmazás példányosítja az WebServiceHost-t, az IIS vagy WAS alatt üzemeltetett szolgáltatások ezt az osztályt használják a WebServiceHost létrehozásához a szolgáltatáshoz. A CreateServiceHost(Type, Uri[]) metódus akkor lesz meghívva, amikor a rendszer bejövő kérést fogad a szolgáltatásra vonatkozóan.
WebHttpBehavior
Az WebHttpBehavior osztály biztosítja a szolgáltatásmodell réteg webstílusú szolgáltatástámogatásához szükséges formázókat, műveletválasztókat és így tovább. Ez végponti viselkedésként van implementálva (a WebHttpBinding) és lehetővé teszi a formázók és a műveletválasztók megadását minden végponthoz, ami lehetővé teszi, hogy ugyanaz a szolgáltatás implementációja elérhetővé tegye a SOAP és a POX végpontokat is.
A WebHttpBehavior kiterjesztése
WebHttpBehavior több virtuális metódussal bővíthető: GetOperationSelector(ServiceEndpoint), GetReplyClientFormatter(OperationDescription, ServiceEndpoint), GetRequestClientFormatter(OperationDescription, ServiceEndpoint), GetReplyDispatchFormatter(OperationDescription, ServiceEndpoint)és GetRequestDispatchFormatter(OperationDescription, ServiceEndpoint). A fejlesztők az alapértelmezett viselkedés testreszabásához létrehozhatnak egy osztályt WebHttpBehavior , és felülbírálhatják ezeket a metódusokat.
A(z) WebScriptEnablingBehavior a(z) WebHttpBehavior kiterjesztésének egyik példája. WebScriptEnablingBehavior lehetővé teszi, hogy a Windows Communication Foundation (WCF) végpontjai HTTP-kéréseket kapjanak egy böngészőalapú ASP.NET AJAX-ügyféltől. Az AJAX http POST-et használó szolgáltatása példa erre a bővíthetőségi pont használatára.
Figyelmeztetés
A WebScriptEnablingBehavior használatakor a UriTemplate nem támogatott a WebGetAttribute vagy WebInvokeAttribute attribútumokon belül.
WebHttpDispatchOperationSelector
Az WebHttpDispatchOperationSelector osztály az UriTemplate és UriTemplateTable osztályokat használja a hívások szolgáltatásműveletekhez való irányításához.
Kompatibilitás
A WCF WEB HTTP programozási modell nem használ SOAP-alapú üzeneteket, ezért nem támogatja a WS-* protokollokat. Ugyanazt a szerződést azonban két különböző végponttal teheti közzé: az egyik a SOAP-t használja, a másikat pedig nem a SOAP-t. Tekintse meg a Hogyan tegyünk közzé egy szerződést a SOAP és webes ügyfelek számára című részt egy példáért.
Biztonság
Mivel a WCF WEB HTTP programozási modell nem támogatja a WS-* protokollokat, a WCF WEB HTTP-programozási modellre épülő webszolgáltatás védelmének egyetlen módja az, ha a szolgáltatást SSL használatával teszi elérhetővé. Az SSL IIS 7.0-val való beállításáról további információt az SSL implementálása az IIS-ben című témakörben talál.