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.
A SoapAndHttpEndpoints minta bemutatja, hogyan implementálhat egy RPC-alapú szolgáltatást, és hogyan teheti elérhetővé SOAP és "Egyszerű régi XML" (POX) formátumban a WCF webprogramozási modell használatával. A szolgáltatás HTTP-kötésével kapcsolatos további részletekért tekintse meg az alapszintű HTTP-szolgáltatásmintát . Ez a minta azokra a részletekre összpontosít, amelyek arra vonatkoznak, hogy ugyanazt a szolgáltatást a SOAP és a HTTP használatával különböző kötésekkel kell felfedni.
Bemutatja
RPC-szolgáltatás felfedése SOAP-n és HTTP-n keresztül a WCF használatával.
Vita (Discussion)
Ez a minta két összetevőből áll: egy webalkalmazás-projektből (szolgáltatásból), amely egy WCF-szolgáltatást és egy olyan konzolalkalmazást (ügyfelet) tartalmaz, amely SOAP- és HTTP-kötésekkel hívja meg a szolgáltatásműveleteket.
A WCF szolgáltatás 2 olyan műveletet tesz elérhetővé ,GetData amelyek PutData a bemenetként átadott sztringet tükrözik. A szolgáltatásműveleteket a rendszer széljegyzetekkel WebGetAttribute és WebInvokeAttribute. Ezek az attribútumok vezérli ezeknek a műveleteknek a HTTP-vetületét. Emellett megjegyzésekkel OperationContractAttributeis ellátják őket, ami lehetővé teszi számukra, hogy SOAP-kötéseken keresztül legyenek közzétéve. A szolgáltatás metódusa PutData egy WebFaultException, a HTTP-állapotkód használatával HTTP-en keresztül visszaküldött, SOAP-hibaként visszaküldött metódust küld vissza.
A Web.config fájl 3 végponttal konfigurálja a WCF szolgáltatást:
A ~/service.svc/mex végpont, amely elérhetővé teszi a szolgáltatás metaadatait a SOAP-alapú ügyfelek általi hozzáféréshez.
A ~/service.svc/http végpont, amely lehetővé teszi az ügyfelek számára a szolgáltatás HTTP-kötéssel való elérését.
A ~/service.svc/soap végpont, amely lehetővé teszi az ügyfelek számára, hogy HTTP-kötésen keresztül hozzáférjenek a szolgáltatáshoz a SOAP használatával.
A HTTP-végpont egy <webHttp> szabványos végponttal van konfigurálva, amely a következőre helpEnabledvan true állítva: . Ennek eredményeképpen a szolgáltatás egy XHTML-alapú súgólapot tesz elérhetővé a ~/service.svc/http/help címen, amelyet a HTTP-alapú ügyfelek használhatnak a szolgáltatás eléréséhez.
Az ügyfélprojekt bemutatja, hogy a szolgáltatás egy SOAP-proxyval (a szolgáltatás hozzáadása referenciával generált) és a szolgáltatáshoz való hozzáféréssel WebClientérhető el.
A minta egy webszolgáltatásból és egy konzolalkalmazásból áll. 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 futtatása
Nyissa meg a SOAP- és HTTP-végpontminták megoldását.
A megoldás létrehozásához nyomja le a Ctrl Shift+ billentyűkombinációt.+
Ha még nincs megnyitva, nyomja le a CTRL+W, S billentyűkombinációt a Megoldáskezelő ablak megnyitásához.
A Megoldáskezelő ablakban kattintson a jobb gombbal a Szolgáltatásprojektre, és helyezze a kurzort a Hibakeresés helyi menüre, hogy megjelenjen az Új példány indítása helyi menü. Kattintson az Új példány indítása gombra. Ezzel elindítja a szolgáltatást üzemeltető ASP.NET fejlesztői kiszolgálót.
A Megoldáskezelő ablakában kattintson a jobb gombbal az Ügyfélprojektre, és helyezze a kurzort a Hibakeresés helyi menüre, hogy megjelenjen az Új példány indítása helyi menü. Kattintson az Új példány indítása gombra.
Megjelenik az ügyfélkonzol ablaka, 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 az ügyfélkonzol-alkalmazás leállításához.
A szolgáltatás hibakeresésének leállításához nyomja le a SHIFT+F5 billentyűkombinációt.
A Windows értesítési területén kattintson a jobb gombbal a ASP.NET fejlesztőkiszolgáló ikonra, és válassza a Helyi menü Leállítás parancsát.