Delen via


SOAP- en HTTP-eindpunten

Het SoapAndHttpEndpoints-voorbeeld laat zien hoe u een RPC-service implementeert en beschikbaar maakt in de SOAP-indeling en de POX-indeling (Plain Old XML) met behulp van het WCF Web Programming-model. Zie het voorbeeld van de Basic HTTP-service voor meer informatie over de HTTP-binding voor de service. Dit voorbeeld is gericht op de details die betrekking hebben op het beschikbaar maken van dezelfde service via SOAP en HTTP met behulp van verschillende bindingen.

Demonstreert

Een RPC-service beschikbaar maken via SOAP en HTTP met behulp van WCF.

Discussie

Dit voorbeeld bestaat uit twee onderdelen: een webtoepassingsproject (service) dat een WCF-service en een consoletoepassing (client) bevat die servicebewerkingen aanroept met SOAP- en HTTP-bindingen.

De WCF-service maakt 2 bewerkingen beschikbaar,GetData en PutData die de tekenreeks die als invoer is doorgegeven, weergeeft. De servicebewerkingen worden voorzien van aantekeningen WebInvokeAttributeen WebGetAttribute . Deze kenmerken bepalen de HTTP-projectie van deze bewerkingen. Bovendien worden ze geannoteerd met OperationContractAttribute, waardoor ze kunnen worden weergegeven via SOAP-bindingen. De methode van PutData de service genereert een WebFaultException, die wordt teruggestuurd via HTTP met behulp van de HTTP-statuscode en wordt teruggestuurd via SOAP als soap-fout.

Het Web.config-bestand configureert de WCF-service met drie eindpunten:

  • Het eindpunt ~/service.svc/mex waarmee de metagegevens van de service beschikbaar worden gesteld voor toegang door SOAP-clients.

  • Het ~/service.svc/http-eindpunt waarmee clients toegang kunnen krijgen tot de service met behulp van de HTTP-binding.

  • Het eindpunt ~/service.svc/soap waarmee de clients toegang hebben tot de service met behulp van soap via HTTP-binding.

Het HTTP-eindpunt is geconfigureerd met een <webHttp> standaardeindpunt dat is helpEnabled ingesteld op true. Als gevolg hiervan geeft de service een op XHTML gebaseerde Help-pagina weer op ~/service.svc/http/help die clients op basis van HTTP kunnen gebruiken om toegang te krijgen tot de service.

Het clientproject laat zien hoe u de service opent met behulp van een SOAP-proxy (gegenereerd via Serviceverwijzing toevoegen) en de service opent met behulp van WebClient.

Het voorbeeld bestaat uit een webservice en een consoletoepassing. Terwijl de consoletoepassing wordt uitgevoerd, doet de client aanvragen naar de service en schrijft de relevante informatie van de antwoorden op het consolevenster.

Het voorbeeld uitvoeren

  1. Open de oplossing voor het SOAP- en HTTP-eindpuntenvoorbeeld.

  2. Druk op Ctrl+Shift+B om de oplossing te bouwen.

  3. Als dit nog niet is geopend, drukt u op Ctrl+W, S om het venster Solution Explorer te openen.

  4. Klik in het venster Solution Explorer met de rechtermuisknop op het serviceproject en plaats de cursor boven de optie Contextmenu Voor foutopsporing , zodat het contextmenu Nieuw exemplaar starten wordt weergegeven. Klik op Nieuw exemplaar starten. Hiermee start u de ASP.NET ontwikkelserver, die als host fungeert voor de service.

  5. Klik in de Solution Explorer-vensters met de rechtermuisknop op het clientproject en plaats de cursor boven de optie Contextmenu Voor foutopsporing , zodat het contextmenu Nieuw exemplaar starten wordt weergegeven. Klik op Nieuw exemplaar starten.

  6. Het venster van de clientconsole wordt weergegeven en biedt de URI van de actieve service en de URI van de HTML-helppagina voor de actieve service. U kunt de HTML-helppagina op elk gewenst moment bekijken door de URI van de Help-pagina in een browser te typen.

  7. Terwijl het voorbeeld wordt uitgevoerd, schrijft de client de status van de huidige activiteit.

  8. Druk op een willekeurige toets om de clientconsoletoepassing te beƫindigen.

  9. Druk op Shift+F5 om de foutopsporing van de service te stoppen.

  10. Klik in het Systeemvak van Windows met de rechtermuisknop op het pictogram ASP.NET ontwikkelserver en selecteer Stoppen in het contextmenu.