Dela via


SOAP- och HTTP-slutpunkter

Exemplet SoapAndHttpEndpoints visar hur du implementerar en RPC-baserad tjänst och exponerar den i SOAP-format och POX-format (Plain Old XML) med hjälp av WCF-webbprogrammeringsmodellen. Mer information om HTTP-bindningen för tjänsten finns i Exempel på grundläggande HTTP-tjänst . Det här exemplet fokuserar på den information som gäller för att exponera samma tjänst via SOAP och HTTP med hjälp av olika bindningar.

Demonstrationer

Exponera en RPC-tjänst via SOAP och HTTP med hjälp av WCF.

Diskussion

Det här exemplet består av två komponenter: ett webbprogramprojekt (tjänst) som innehåller en WCF-tjänst och ett konsolprogram (klient) som anropar tjänståtgärder med hjälp av SOAP- och HTTP-bindningar.

WCF-tjänsten exponerar två åtgärder –GetData och PutData – som ekar strängen som skickades som indata. Tjänståtgärderna kommenteras med WebGetAttribute och WebInvokeAttribute. Dessa attribut styr HTTP-projektionen av dessa åtgärder. Dessutom kommenteras de med OperationContractAttribute, vilket gör att de kan exponeras över SOAP-bindningar. Tjänstens metod genererar en WebFaultException, som skickas PutData tillbaka via HTTP med hjälp av HTTP-statuskoden och skickas tillbaka via SOAP som ett SOAP-fel.

Filen Web.config konfigurerar WCF-tjänsten med 3 slutpunkter:

  • Slutpunkten ~/service.svc/mex som exponerar tjänstens metadata för åtkomst av SOAP-baserade klienter.

  • Den ~/service.svc/http-slutpunkt som gör det möjligt för klienter att komma åt tjänsten med hjälp av HTTP-bindningen.

  • Slutpunkten ~/service.svc/soap som gör att klienterna kan komma åt tjänsten med SOAP via HTTP-bindningen.

HTTP-slutpunkten konfigureras med en <webHttp> standardslutpunkt som har helpEnabled angetts till true. Därför exponerar tjänsten en XHTML-baserad hjälpsida på ~/service.svc/http/help som HTTP-baserade klienter kan använda för att komma åt tjänsten.

Klientprojektet visar åtkomst till tjänsten med hjälp av en SOAP-proxy (genererad via Lägg till tjänstreferens) och åtkomst till tjänsten med hjälp av WebClient.

Exemplet består av en webbhanterad tjänst och ett konsolprogram. När konsolprogrammet körs skickar klienten begäranden till tjänsten och skriver relevant information från svaren till konsolfönstret.

Så här kör du exemplet

  1. Öppna lösningen för SOAP- och HTTP-slutpunkter.

  2. Tryck på Ctrl+Skift+B för att skapa lösningen.

  3. Om den inte redan är öppen trycker du på CTRL+W, S för att öppna Solution Explorer-fönstret .

  4. I fönstret Solution Explorer högerklickar du på serviceprojektet och placerar markören över snabbmenyalternativet Felsök så att snabbmenyn Starta ny instans visas. Klicka på Starta ny instans. Detta startar den ASP.NET utvecklingsservern som är värd för tjänsten.

  5. I Solution Explorer-fönstren högerklickar du på klientprojektet och placerar markören över snabbmenyalternativet Felsök så att snabbmenyn Starta ny instans visas. Klicka på Starta ny instans.

  6. Klientkonsolfönstret visas och tillhandahåller URI:n för den tjänst som körs och URI:n för HTML-hjälpsidan för den tjänst som körs. När som helst kan du visa HTML-hjälpsidan genom att skriva URI:n för hjälpsidan i en webbläsare.

  7. När exemplet körs skriver klienten status för den aktuella aktiviteten.

  8. Tryck på valfri tangent för att avsluta klientkonsolprogrammet.

  9. Tryck på SKIFT+F5 för att sluta felsöka tjänsten.

  10. I Meddelandefältet i Windows högerklickar du på ikonen ASP.NET utvecklingsserver och väljer Stoppa på snabbmenyn.