Einfacher HTTP-Dienst
In diesem Beispiel wird veranschaulicht, wie ein HTTP-basierter, RPC-basierter Dienst, der im Allgemeinen als "POX"-Dienst (Plain Old XML) bezeichnet wird, mithilfe des Windows Communication Foundation (WCF) REST-Programmiermodells implementiert wird. Dieses Beispiel besteht aus zwei Komponenten: einem selbst gehosteten WCF-HTTP-Dienst (Service.cs) und einer Konsolenanwendung (Program.cs), die den Dienst erstellt und Aufrufe an den Dienst durchführt.
Beispieldetails
Der WCF-Dienst macht zwei Vorgänge, EchoWithGet
und EchoWithPost
verfügbar, wodurch die Zeichenfolge zurückgegeben wird, die als Eingabe übergeben wurde.
An den EchoWithGet
-Vorgang wird das WebGetAttribute-Attribut angehängt. Das bedeutet, dass der Vorgang HTTP-GET-Anforderungen verarbeitet. Da das WebGetAttribute eine UriTemplate nicht explizit angibt, erwartet der Vorgang, dass die Eingabezeichenfolge mit einem Abfragezeichenfolgenparameter namens s übergeben wird. Beachten Sie, dass das Format des vom Dienst erwarteten URIs mit der UriTemplate-Eigenschaft angepasst werden kann.
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). 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). 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.
Die Datei App.config konfiguriert den WCF-Dienst mit einem Standard-WebHttpEndpoint, für den die HelpEnabled-Eigenschaft auf true festgelegt ist. Daraufhin erstellt die WCF-Infrastruktur eine automatische HTML-basierte Hilfeseite unter https://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.
Die Datei Program.cs veranschaulicht, wie mit einer WCF-Kanalfactory Aufrufe des Diensts durchgeführt und die Antworten verarbeitet werden. Beachten Sie, dass dies nur eine Möglichkeit für den Zugriff auf einen WCF-Dienst darstellt. Es ist auch möglich, mit anderen .NET Framework-Klassen wie HttpWebRequest und WebClient auf den Dienst zuzugreifen. In anderen Beispielen im SDK (z. B. Automatische Formatauswahl und Einfacher Ressourcendienst) wird gezeigt, wie diese Klassen verwendet werden, um mit einem WCF-Dienst zu kommunizieren.
Das Beispiel umfasst einen selbst gehosteten Dienst und einen Client, die in einer Konsolenanwendung ausgeführt werden. 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.
So verwenden Sie dieses Beispiel
Öffnen Sie die Projektmappe für das Beispiel eines grundlegenden HTTP-Diensts. Sie müssen Visual Studio 2010 als Administrator ausführen, damit das Beispiel erfolgreich ausgeführt werden kann. Klicken Sie dazu mit der rechten Maustaste auf das Visual Studio 2010-Symbol, und wählen Sie im Kontextmenü die Option Als Administrator ausführen aus.
Drücken Sie F6, um die Projektmappe zu erstellen, und dann STRG+F5, um die Konsolenanwendung ohne Debuggen auszuführen. Im eingeblendeten Konsolenfenster werden der URI des ausgeführten Diensts und der URI der HTML-Hilfeseite für den ausgeführten Dienst angezeigt. Sie können die HTML-Hilfeseite jederzeit anzeigen, indem sie den URI der Hilfeseite in einem Browser eingeben. Während das Beispiel ausgeführt wird, schreibt der Client den Status der aktuellen Aktivität.
Drücken Sie eine beliebige Taste, um das Beispiel zu beenden.
Hinweis: |
---|
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.
<Installationslaufwerk>:\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)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.
<Installationslaufwerk>:\WF_WCF_Samples\WCF\Basic\Web\BasicHttpService
|