Megosztás:


SOAP és HTTP-végpontok

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

  1. Nyissa meg a SOAP- és HTTP-végpontminták megoldását.

  2. A megoldás létrehozásához nyomja le a Ctrl Shift+ billentyűkombinációt.+

  3. Ha még nincs megnyitva, nyomja le a CTRL+W, S billentyűkombinációt a Megoldáskezelő ablak megnyitásához.

  4. 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.

  5. 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.

  6. 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.

  7. A minta futtatásakor az ügyfél megírja az aktuális tevékenység állapotát.

  8. Nyomja le bármelyik billentyűt az ügyfélkonzol-alkalmazás leállításához.

  9. A szolgáltatás hibakeresésének leállításához nyomja le a SHIFT+F5 billentyűkombinációt.

  10. 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.