Reliable Secure ProfileReliable Secure Profile

Dieses Beispiel veranschaulicht, wie WCF verfassen und Reliable Secure Profile (RSP).This sample demonstrates how to compose WCF and Reliable Secure Profile (RSP). Dieses Beispiel veranschaulicht die Implementierung einer Make Connection Kanal, der zusammen mit zuverlässigem Messaging und optional zusammengesetzt werden kann ein sicherer Kanal zum Erstellen einer zuverlässigen sichere Bindung auf Basis der RSP Spezifikation.This sample demonstrates the implementation of a Make Connection channel which can be composed together with Reliable Messaging and optionally a secure channel to create a Reliable Secure Binding based on the RSP specification.

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, fahren Sie mit Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF) Samples for .NET Framework 4 aller Windows Communication Foundation (WCF) herunterladen und WFWF Beispiele.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) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Extensibility\Channels\ReliableSecureProfile

DiskussionDiscussion

In diesem Beispiel wird ein zuverlässiges asynchrones, bidirektionales Nachrichtenaustauschszenario veranschaulicht.This sample demonstrates a reliable asynchronous two-way message exchange scenario. Der Dienst verfügt über einen Duplexvertrag, und der Client implementiert den Duplexrückrufvertrag.The service has a duplex contract and the client implements the duplex callback contract. Der Client initiiert eine Anforderung an einen Dienst, für den eine Antwort für eine separate Verbindung erwartet wird.The client initiates a request to a service, for which a response is expected on a separate connection. Die Anforderungsmeldung wird zuverlässig gesendet.The request message is sent reliably. Der Client möchte selbst keinen überwachenden Endpunkt öffnen.The client does not want to open a listening endpoint at its end. Deshalb sendet er eine Abfrage an den Dienst mit 'Make Connection'-Anforderungen, damit die Antwort auf dem Rückkanal dieser 'Make Connection'-Anforderung zurückgesendet werden soll.Thus, it polls the service with ‘Make Connection’ requests for the service to send back the response on the back channel of this ‘Make Connection’ request. In diesem Beispiel wird veranschaulicht die sichere zuverlässige Duplexkommunikation über HTTP, ohne dass der Client einen überwachenden Endpunkt verfügbar machen muss oder eine Firewallausnahme erstellt werden soll.This sample demonstrates how to have secure reliable duplex communication over HTTP without the client exposing a listening endpoint (and creating a firewall exception).

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Öffnen der ReliableSecureProfile Lösung.Open the ReliableSecureProfile solution.

  2. Klicken Sie mit der rechten Maustaste auf die Service im Projekt Projektmappen-ExplorerOption Debuggen, neue Instanz starten aus dem Kontextmenü.Right click the Service project in Solution Explorer, select Debug, Start new instance from the context menu. Daraufhin wird der Diensthost gestartet.This starts up the service host.

  3. Klicken Sie mit der rechten Maustaste auf die Client Projekt Projektmappen-ExplorerOption Debuggen, neue Instanz starten aus dem Kontextmenü.Right click the Client project in Solution Explorer, select Debug, Start new instance from the context menu. Daraufhin wird der Client gestartet.This starts up the client.

  4. Geben Sie eine beliebige Zeichenfolge in die Eingabeaufforderung im Clientkonsolenfenster ein, und drücken Sie die EINGABETASTE. Daraufhin wird die Eingabezeichenfolge an den Dienst gesendet, und dieser berechnet einen Hash der Zeichenfolge.Type in any string in the prompt on the client console window and click ENTER.This sends the input string to the service, which computes a hash of this string.

  5. Zeigen Sie das Ergebnis in den Clientfenstern an, wenn der Vorgang mit dem Duplexrückrufvertrag vom Dienst zurückgerufen wird, um das Ergebnis im Clientkonsolenfenster anzuzeigen.View the result on the client windows when the service calls back the duplex callback contract operation to display the result on the client console window. Es gibt eine absichtliche Verzögerung im Dienst, um einen lange andauernden Ausführungsvorgang zur Datenverarbeitung zu simulieren.There is an intentional delay on the service to simulate a long running operation of processing the data.

  6. Die Überwachung des HTTP-Datenverkehrs (durch ein Online-Netzwerküberwachungstool wie Network Monitor, Fiddler usw.) zeigt an, dass eine Sequenz für die Kommunikation zwischen dem Client und dem Dienst gemäß dem Vorbild des Reliable Secure Profile erstellt wird, und demonstriert, wie der Client 'Make Connection'-Anforderungen als Abfragen an den Dienst sendet.Monitoring the HTTP traffic (by any of the online network monitoring tools like Network Monitor, Fiddler and so on) shows that a sequence for communication is established between the client and the service as laid down by the Reliable Secure Profile, and how the client polls the service with ‘Make Connection’ requests. Wenn der Dienst sich darauf vorbereitet, die die verarbeitete Antwort zurückzusenden, sendet es die Ergebnisse über den Rückkanal der letzten 'Make Connection'-Anforderung zurück.When the service gets ready to send back the processed response, it uses the back channel of the last ‘Make Connection’ request to send back the results.

  7. Drücken Sie im Dienstkonsolenfenster die EINGABETASTE, um den Dienst zu schließen.Press ENTER on the service console window to close the service. Drücken Sie im Clientkonsolenfenster die EINGABETASTE, um den Client zu schließen.Press ENTER on the client console window to close the client.