Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az AlapszintűHttpService-minta bemutatja, hogyan implementálható egy HTTP-alapú, RPC-alapú szolgáltatás – amelyet népszerűen "POX" (Egyszerű régi XML) szolgáltatásnak neveznek – a Windows Communication Foundation (WCF) REST programozási modelljével. Ez a minta két összetevőből áll: egy saját üzemeltetésű WCF HTTP-szolgáltatásból (Service.cs) és egy konzolalkalmazásból (Program.cs), amely létrehozza a szolgáltatást, és meghívja azt.
Minta részletei
A WCF szolgáltatás 2 műveletet tesz elérhetővé, EchoWithGet és EchoWithPosta bemenetként átadott sztringet adja vissza.
A EchoWithGet művelet megjegyzésekkel van elfűzve WebGetAttribute, ami azt jelzi, hogy a művelet HTTP-kéréseket GET dolgoz fel. Mivel a WebGetAttribute művelet nem ad meg explicit módon egy UriTemplateértéket, a művelet azt várja, hogy a bemeneti sztringet egy névvel sellátott lekérdezési sztring paraméterrel adja át. Vegye figyelembe, hogy a szolgáltatás által várt URI formátuma testre szabható a UriTemplate tulajdonság használatával.
A EchoWithPost művelet WebInvokeAttribute széljegyzettel van ellátva, ami azt jelzi, hogy nem GET művelet (mellékhatásai vannak). Mivel a WebInvokeAttribute nem ad meg explicit módon egy specifikációt Method, a művelet feldolgozza azokat a HTTP-kéréseket POST, amelyek karakterlánca szerepel a kérelem törzsében (például XML formátumban). Vegye figyelembe, hogy a HTTP-metódus és a kérelem URI-formátuma testre szabható a Method és a UriTemplate tulajdonságokkal.
A App.config fájl egy alapértelmezett WebHttpEndpoint-val konfigurálja a WCF szolgáltatást, amelynek HelpEnabled tulajdonsága true-ra van beállítva. Ennek eredményeképpen a WCF-infrastruktúra létrehoz egy automatikus HTML-alapú súgólapot http://localhost:8000/Customers/help , amely tájékoztatást nyújt arról, hogyan hozhatók létre HTTP-kérések a szolgáltatáshoz, és hogyan lehet felhasználni a szolgáltatás HTTP-válaszát.
Program.cs bemutatja, hogyan használható egy WCF-csatornagyár a szolgáltatás hívásaira és a válaszok feldolgozására. Vegye figyelembe, hogy ez csak egy módja a WCF-szolgáltatások elérésének. A szolgáltatás más .NET-keretrendszerosztályokkal is elérhető, például HttpWebRequest és WebClient.
A minta egy saját üzemeltetésű szolgáltatásból és egy olyan ügyfélből áll, amely egy konzolalkalmazáson belül fut. A konzolalkalmazás futtatásakor az ügyfél kéréseket küld a szolgáltatásnak, és megírja a vonatkozó információkat a konzolablakba érkező válaszokból.
A minta használata
Nyissa meg az alapszintű HTTP-szolgáltatásminta megoldását. A Visual Studio 2012 indításakor rendszergazdaként kell futtatnia a mintát a sikeres végrehajtáshoz. Ehhez kattintson a jobb gombbal a Visual Studio ikonra, és válassza a Futtatás rendszergazdaként lehetőséget a helyi menüben.
A megoldás létrehozásához nyomja le a CtrlShift+B+, majd a CtrlF5+ a konzolalkalmazás hibakeresés nélküli futtatásához. Megjelenik a konzolablak, amely biztosítja a futó szolgáltatás URI-ját és a futó szolgáltatás HTML-súgóoldalának URI-ját. Bármikor megtekintheti a HTML-súgólapot úgy, hogy beírja a súgólap URI-ját egy böngészőbe. A minta futtatásakor az ügyfél megírja az aktuális tevékenység állapotát.
Nyomja le bármelyik billentyűt a minta leállításához.