Einfacher Ressourcendienst
In diesem Beispiel wird veranschaulicht, wie ein HTTP-basierter Dienst mithilfe des Windows Communication Foundation (WCF) REST-Programmiermodells implementiert wird, das eine Auflistung von Kunden verfügbar macht, die die Vorgänge zum Abrufen, Hinzufügen, Löschen und Ersetzen unterstützt. 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 eine Auflistung der Kunden auf ressourcenorientierte/REST-Weise verfügbar. Kurz gesagt gehören dazu eindeutige URIs für die Auflistung der Kunden und für jeden Kunden in der Auflistung. Der Dienst unterstützt das Senden von HTTP GET am Auflistungs-URI, um die gesamte Auflistung abzurufen, und das Senden von HTTP POST am Auflistungs-URI, um der Auflistung einen neuen Kunden hinzuzufügen. Der Dienst unterstützt am URI für einen einzelnen Kunden außerdem HTTP GET, um die Kundendetails abzurufen, HTTP PUT, um die Kundendetails zu ersetzen, und HTTP DELETE, um den Kunden aus der Auflistung zu entfernen. Wenn der Auflistung ein neuer Kunde hinzugefügt wird, weist der Dienst ihm einen eindeutigen URI zu und speichert den URI zusammen mit den anderen Kundendetails. Der Dienst verwendet außerdem den HTTP-Speicherortheader der Antwort, um den URI dem Client mitzuteilen.
Die Datei App.config konfiguriert den WCF-Dienst mit einem Standard-WebHttpEndpoint, für den die HelpEnabled-Eigenschaft auf true festgelegt ist. Daraufhin erstellt WCF eine automatische HTML-basierte Hilfeseite unter https://localhost:8000/Customers/help
, die Informationen dazu bereitstellt, wie HTTP-Anforderungen an den Dienst erstellt werden und wie auf die HTTP-Antwort des Diensts – z. B. die Darstellung der Kundendetails in XML und JSON – zugegriffen werden kann.
Indem der Client die Kundenauflistung (und, allgemeiner ausgedrückt, jede Ressource) auf diese Weise verfügbar macht, kann er mithilfe von URIs sowie HTTP GET, PUT, DELETE und POST auf einheitliche Weise mit der Auflistung interagieren. Program.cs veranschaulicht, wie ein solcher Client mit HttpWebRequest erstellt werden kann. Beachten Sie, dass dies nur eine Möglichkeit für den Zugriff auf einen WCF REST-Dienst darstellt. Es ist auch möglich, mit anderen .NET Framework-Klassen wie ChannelFactory und WebClient auf den Dienst zuzugreifen. In anderen Beispielen im SDK (z. B. Einfacher HTTP-Dienst und Automatische Formatauswahl) 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 Ressourcendiensts. 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 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\BasicResourceService
|