SOAP- und HTTP-EndpunkteSOAP and HTTP Endpoints

In diesem Beispiel wird veranschaulicht, wie ein RPC-basierter Dienst implementiert und im SOAP-Format verfügbar gemacht und die "Plain Old XML" (POX) formatieren Sie mit der WCFWCF -Webprogrammiermodell.This sample demonstrates how to implement an RPC-based service and expose it in the SOAP format and the "Plain Old XML" (POX) format using the WCFWCF Web Programming model. Finden Sie unter der grundlegenden HTTP-Dienst Sample detaillierte Informationen über die HTTP-Bindung für den Dienst.See the Basic HTTP Service sample for more details about the HTTP binding for the service. Dieses Beispiel befasst sich mit den Details der Bereitstellung des gleichen Diensts über SOAP und HTTP, allerdings mit unterschiedlichen Bindungen.This sample focuses on the details that pertain to exposing the same service over SOAP and HTTP using different bindings.

VeranschaulichtDemonstrates

Die Bereitstellung eines RPC-Diensts über SOAP und HTTP mit WCFWCFExposing an RPC service over SOAP and HTTP using WCFWCF.

DiskussionDiscussion

Dieses Beispiel besteht aus zwei Komponenten: einem Webanwendungsprojekt (Dienst), das einen WCFWCF-Dienst enthält, und einer Konsolenanwendung (Client), mit dem Dienstvorgänge mit SOAP- und HTTP-Bindungen aufgerufen werden.This sample consists of two components: a Web Application project (Service) that contains a WCFWCF service and a console application (Client) that invokes service operations using SOAP and HTTP bindings.

Der WCFWCF-Dienst macht 2 Vorgänge verfügbar – GetData und PutData –, die die als Eingabe übergebene Zeichenfolge wiederholen.The WCFWCF service exposes 2 operations –GetData and PutData – that echo the string that was passed as input. Die Dienstvorgänge werden mit WebGetAttribute und WebInvokeAttribute kommentiert.The service operations are annotated with WebGetAttribute and WebInvokeAttribute. Diese Attribute steuern die HTTP-Projektion dieser Vorgänge.These attributes control the HTTP projection of these operations. Außerdem werden sie mit OperationContractAttribute kommentiert, sodass sie über SOAP-Bindungen verfügbar gemacht werden können.In addition, they are annotated with OperationContractAttribute, which enables them to be exposed over SOAP bindings. Die PutData-Methode des Diensts löst eine WebFaultException aus, die mithilfe des HTTP-Statuscodes über HTTP zurückgesendet und als SOAP-Fehler über SOAP zurückgesendet wird.The service’s PutData method throws a WebFaultException, which gets sent back over HTTP using the HTTP status code and gets sent back over SOAP as a SOAP fault.

Mit der Datei Web.config wird der WCFWCF-Dienst mit 3 Endpunkten konfiguriert:The Web.config file configures the WCFWCF service with 3 endpoints:

  • Der ~/service.svc/mex-Endpunkt, der die Dienstmetadaten für den Zugriff durch SOAP-basierte Clients verfügbar macht.The ~/service.svc/mex endpoint that exposes the service metadata for access by SOAP-based clients.

  • Der ~/service.svc/http-Endpunkt, der es Clients ermöglicht, über die HTTP-Bindung auf den Dienst zuzugreifen.The ~/service.svc/http endpoint that enables clients to access the service using the HTTP binding.

  • Der ~/service.svc/soap-Endpunkt, der es den Clients ermöglicht, über die SOAP über HTTP-Bindung auf den Dienst zuzugreifen.The ~/service.svc/soap endpoint that allows the clients to access the service using the SOAP over HTTP binding.

Der HTTP-Endpunkt wird mit einem <webHttp>-Standardendpunkt konfiguriert, bei dem helpEnabled auf true festgelegt wurde.The HTTP endpoint is configured with a <webHttp> standard endpoint which has helpEnabled set to true. Als Ergebnis stellt der Dienst eine XHTML-basierte Hilfeseite unter ~/service.svc/http/help bereit, mit der HTTP-basierte Clients auf den Dienst zugreifen können.As a result, the service exposes an XHTML based help page at ~/service.svc/http/help that HTTP-based clients can use to access the service.

Das Clientprojekt veranschaulicht den Zugriff auf den Dienst über einen SOAP-Proxy (generiert durch Hinzufügen eines Dienstverweises) und den Zugriff auf den Dienst mit WebClient.The client project demonstrates accessing the service using a SOAP proxy (generated through Add Service Reference) and accessing the service using WebClient.

Das Beispiel besteht aus einem im Web gehosteten Dienst und einer Konsolenanwendung.The sample consists of a Web-hosted service and a console application. Während die Konsolenanwendung ausgeführt wird, sendet der Client Anforderungen an den Dienst und schreibt die in den Antworten enthaltenen wichtigen Informationen in das Konsolenfenster.As the console application runs, the client makes requests to the service and writes the pertinent information from the responses to the console window.

So führen Sie das Beispiel ausTo run the sample

  1. Öffnen Sie die Projektmappe für das Beispiel mit den SOAP- und HTTP-Endpunkten.Open the solution for the SOAP and HTTP Endpoints Sample.

  2. Drücken Sie STRG+UMSCHALT+B, um die Projektmappe zu erstellen.Press CTRL+SHIFT+B to build the solution.

  3. Wenn es nicht bereits geöffnet ist, drücken Sie STRG + W, S, öffnen Sie die Projektmappen-Explorer Fenster.If it is not already open, press CTRL+W, S to open the Solution Explorer window.

  4. Aus der Projektmappen-Explorer Fenster mit der rechten Maustaste die Service Projekt, und platzieren Sie den Cursor über die Debuggen Kontextmenüoption, damit die neue starten Instanz Kontextmenü wird angezeigt.From the Solution Explorer window, right-click the Service project and place the cursor over the Debug context menu option so that the Start New Instance context menu appears. Klicken Sie auf neue Instanz starten.Click Start New Instance. Der ASP.NET-Entwicklungsserver, der den Dienst hostet, wird gestartet.This launches the ASP.NET development server, which hosts the service.

  5. Aus dem Projektmappen-Explorer-Fenster mit der rechten Maustaste des Clientprojekts, und platzieren Sie den Cursor über die Debuggen Kontextmenüoption, damit die neue Instanz starten Kontextmenü wird angezeigt.From the Solution Explorer windows, right-click the Client project and place the cursor over the Debug context menu option so that the Start New Instance context menu appears. Klicken Sie auf neue Instanz starten.Click Start New Instance.

  6. Im eingeblendeten Clientkonsolenfenster werden der URI des ausgeführten Diensts und der URI der HTML-Hilfeseite für den ausgeführten Dienst angezeigt.The client console window appears and provides the URI of the running service and the URI of the HTML help page for the running service. Sie können die HTML-Hilfeseite jederzeit anzeigen, indem sie den URI der Hilfeseite in einem Browser eingeben.At any point in time you can view the HTML help page by typing the URI of the help page in a browser.

  7. Während das Beispiel ausgeführt wird, schreibt der Client den Status der aktuellen Aktivität.As the sample runs, the client writes the status of the current activity.

  8. Drücken Sie eine beliebige Taste, um die Clientkonsolenanwendung zu beenden.Press any key to terminate the client console application.

  9. Drücken Sie UMSCHALT+F5, um das Debugging des Diensts zu beenden.Press SHIFT+F5 to stop debugging the service.

  10. Klicken Sie im Windows-Infobereich mit der rechten Maustaste des Symbol "ASP.NET Development Server", und wählen beenden aus dem Kontextmenü.In the Windows Notification Area, right-click the ASP.NET development server icon and select Stop from the context menu.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your machine. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Web\SoapAndHttpEndpoints