Freigeben über


Einfacher HTTP-Dienst

Das Beispiel BasicHttpService zeigt, wie ein HTTP-basierter, RPC-basierter Dienst – häufig auch als POX-Dienst (Plain Old XML) bezeichnet – unter Verwendung des REST-Programmiermodells von Windows Communication Foundation (WCF) implementiert werden kann. Dieses Beispiel umfasst zwei Komponenten: einen selbstgehosteten WCF-HTTP-Dienst (Service.cs) und eine Konsolenanwendung (Program.cs), die den Dienst erstellt und Aufrufe an ihn sendet.

Beispieldetails

Der WCF-Dienst macht zwei Vorgänge verfügbar (EchoWithGet und EchoWithPost), die die als Eingabe übergebene Zeichenfolge zurückgeben.

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.

Die EchoWithPost-Operation wird mit WebInvokeAttribute versehen. 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. Als Ergebnis erstellt die WCF-Infrastruktur eine automatische HTML-basierte Hilfeseite unter http://localhost:8000/Customers/help. Diese stellt Informationen darüber bereit, wie HTTP-Anforderungen an den Dienst erstellt werden und wie die HTTP-Antwort des Diensts genutzt werden kann.

Die Datei „Program.cs veranschaulicht“, wie mit einer WCF-Kanalfactory Aufrufe an den Dienst gesendet 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.

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

  1. Öffnen Sie die Projektmappe für das Beispiel eines grundlegenden HTTP-Diensts. Sie müssen beim Start von Visual Studio 2012 die Option „Als Administrator ausführen“ verwenden, damit das Beispiel erfolgreich ausgeführt werden kann. Klicken Sie dazu mit der rechten Maustaste auf das Visual Studio-Symbol, und wählen Sie im Kontextmenü Als Administrator ausführen aus.

  2. Drücken Sie STRG+UMSCHALT+B, um die Projektmappe zu erstellen, und drücken Sie 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.

  3. Drücken Sie eine beliebige Taste, um das Beispiel zu beenden.