Einfacher HTTP-DienstBasic HTTP Service

In diesem Beispiel wird veranschaulicht, wie einen HTTP-basierter, RPC-basierter Dienst - allgemein als "POX" (Plain Old XML)-Dienst bezeichnet – mithilfe von implementiert die Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) REST-Programmiermodells.This sample demonstrates how to implement an HTTP-based, RPC-based service - popularly referred to as "POX" (Plain Old XML) service – using the Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) REST Programming model. Dieses Beispiel besteht aus zwei Komponenten: einem selbst gehosteten WCFWCF-HTTP-Dienst (Service.cs) und einer Konsolenanwendung (Program.cs), die den Dienst erstellt und Aufrufe an den Dienst durchführt.This sample consists of two components: a self-hosted WCFWCF HTTP service (Service.cs) and a console application (Program.cs) that creates the service and makes calls to it.

BeispieldetailsSample Details

Der WCFWCF-Dienst macht zwei Vorgänge, EchoWithGet und EchoWithPost verfügbar, wodurch die Zeichenfolge zurückgegeben wird, die als Eingabe übergeben wurde.The WCFWCF service exposes 2 operations, EchoWithGet and EchoWithPost, which returns the string that was passed as input.

An den EchoWithGet-Vorgang wird das WebGetAttribute-Attribut angehängt. Das bedeutet, dass der Vorgang HTTP-GET-Anforderungen verarbeitet.The EchoWithGet operation is annotated with WebGetAttribute, which indicates that the operation processes HTTP GET requests. Da das WebGetAttribute eine UriTemplate nicht explizit angibt, erwartet der Vorgang, dass die Eingabezeichenfolge mit einem Abfragezeichenfolgenparameter namens s übergeben wird.Because the WebGetAttribute does not explicitly specify a UriTemplate, the operation expects the input string to be passed in using a query string parameter with name s. Beachten Sie, dass das Format des vom Dienst erwarteten URIs mit der UriTemplate-Eigenschaft angepasst werden kann.Note that the format of the URI that the service expects can be customized using the UriTemplate property.

An den EchoWithPost-Vorgang wird das WebInvokeAttribute-Attribut angehängt. Das bedeutet, dass es sich dabei nicht um einen GET-Vorgang handelt (er hat Nebenwirkungen).The EchoWithPost operation is annotated with WebInvokeAttribute, which indicates it is not a GET operation (it has side effects). Da das WebInvokeAttribute eine Method nicht explizit angibt, verarbeitet der Vorgang HTTP-POST-Anforderungen, bei denen die Zeichenfolge im Anforderungstext enthalten ist (z. B. im XML-Format).Because the WebInvokeAttribute does not explicitly specify a Method, the operation processes HTTP POST requests that have the string in the request body (in the XML format, for instance). Beachten Sie, dass die HTTP-Methode und das Format des URIs für die Anforderung mit der Method-Eigenschaft bzw. der UriTemplate-Eigenschaft angepasst werden können.Note that the HTTP method and the format of the URI for the request can be customized using the Method and UriTemplate properties respectively.

Die Datei App.config konfiguriert den WCF-Dienst mit einem Standard-WebHttpEndpoint, für den die HelpEnabled-Eigenschaft auf true festgelegt ist.The App.config file configures the WCF service with a default WebHttpEndpoint that has the HelpEnabled property set to true. Daraufhin erstellt die WCFWCF-Infrastruktur eine automatische HTML-basierte Hilfeseite unter http://localhost:8000/Customers/help, in der Informationen zum Erstellen von HTTP-Anforderungen an den Dienst und zum Verwenden der HTTP-Antwort des Diensts zu finden sind.As a result, the WCFWCF infrastructure creates an automatic HTML based help page at http://localhost:8000/Customers/help that provides information about how to construct HTTP requests to the service and how to consume the service’s HTTP response.

Die Datei Program.cs veranschaulicht, wie mit einer WCFWCF-Kanalfactory Aufrufe des Diensts durchgeführt und die Antworten verarbeitet werden.Program.cs demonstrates how a WCFWCF channel factory can be used to make calls to the service and process responses. Beachten Sie, dass dies nur eine Möglichkeit für den Zugriff auf einen WCFWCF-Dienst darstellt.Note that this is just one way to access a WCFWCF service. Es ist auch möglich, mit anderen .NET Framework-Klassen wie HttpWebRequest und WebClient auf den Dienst zuzugreifen.It is also possible to access the service using other .NET Framework classes like HttpWebRequest and WebClient. Weitere Beispiele im SDK (z. B. die automatische Formatauswahl Beispiel und grundlegenden Ressourcendiensts Beispiel) zeigen, wie Sie diese Klassen verwenden, um die Kommunikation mit einem WCFWCF Dienst.Other samples in the SDK (such as the Automatic Format Selection sample and Basic Resource Service sample) show how to use these classes to communicate with a WCFWCF service.

Das Beispiel umfasst einen selbst gehosteten Dienst und einen Client, die in einer Konsolenanwendung ausgeführt werden.The sample consists a self-hosted service and a client that both run within 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 verwenden Sie dieses BeispielTo use this sample

  1. Öffnen Sie die Projektmappe für das Beispiel eines grundlegenden HTTP-Diensts.Open the solution for the Basic Http Service Sample. Sie müssen Visual Studio 2012Visual Studio 2012 als Administrator ausführen, damit das Beispiel erfolgreich ausgeführt werden kann.When launching Visual Studio 2012Visual Studio 2012, you must run as an administrator for the sample to execute successfully. Zu diesem Zweck mit der rechten Maustaste die Visual Studio 2012Visual Studio 2012 und wählen Sie dann als Administrator ausführen aus dem Kontextmenü.Do this by right-clicking the Visual Studio 2012Visual Studio 2012 icon and selecting Run as Administrator from the context menu.

  2. Drücken Sie STRG+UMSCHALT+B, um die Projektmappe zu erstellen, und dann STRG+F5, um die Konsolenanwendung ohne Debuggen auszuführen.Press CTRL+SHIFT+B to build the solution and then press Ctrl+F5 to run the console application without debugging. Im eingeblendeten Konsolenfenster werden der URI des ausgeführten Diensts und der URI der HTML-Hilfeseite für den ausgeführten Dienst angezeigt.The 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. 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.

  3. Drücken Sie eine beliebige Taste, um das Beispiel zu beenden.Press any key to terminate the sample.

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\BasicHttpService

Siehe auchSee Also

Automatische FormatauswahlAutomatic Format Selection
Einfacher RessourcendienstBasic Resource Service