Gewusst wie: Austauschen von Nachrichten in einer Warteschlange mit WCD-Endpunkten
Warteschlangen stellen sicher, dass ein zuverlässiger Nachrichtenaustausch zwischen einem Client und einem Windows Communication Foundation (WCF)-Dienst stattfinden kann, selbst wenn der Dienst zum Zeitpunkt der Kommunikation nicht verfügbar ist. Die folgenden Vorgänge zeigen, wie Sie eine stabile Kommunikation zwischen einem Client und einem Dienst sicherstellen können, indem Sie die Standardbindung in der Warteschlange beim Implementieren des WCF-Dienstes verwenden.
Dieser Abschnitt erläutert die Verwendung der NetMsmqBinding für die Kommunikation in einer Warteschlange zwischen einem WCF-Client und einem WCF-Dienst.
So verwenden Sie Warteschlangen in einem WCD-Dienst
Definieren Sie einen Dienstvertrag mit einer Schnittstelle, die mit dem ServiceContractAttribute gekennzeichnet ist.
Kennzeichnen Sie die Vorgänge in der Schnittstelle, die Teil des Dienstvertrags mit dem OperationContractAttribute sind, und legen Sie sie als einseitig fest, da keine Antwort an die Methode zurückgegeben wird. Im folgenden Codebeispiel wird ein Dienstvertrag mit seiner Vorgangsdefinition dargestellt.
Wenn der Dienstvertrag benutzerdefinierte Typen weiterleitet, müssen Sie Datenverträge für diese Typen definieren. Der folgende Code stellt einen Beispiel-Datenvertrag dar. (Beachten Sie, dass die Klasse, die diesen Datenvertrag definiert, auch verschiedene Methoden definiert. Diese Methoden werden nicht als Teil des Datenvertrags behandelt. Nur Member, die mit dem DataMember-Attribut deklariert werden, sind Teil des Datenvertrags.)
Implementieren Sie die Methoden des Dienstvertrags, die in der Schnittstelle in einer Klasse definiert sind.
Erstellen Sie eine Transaktionswarteschlange mit System.Messaging. Sie könnten stattdessen die Warteschlange mit der Microsoft Message Queuing (MSMQ) Microsoft Management Console (MMC) erstellen. Erstellen Sie in diesem Fall unbedingt eine Transaktionswarteschlange.
Definieren Sie einen ServiceEndpoint in einer Konfiguration, die die Dienstadresse festlegt und die Standard-NetMsmqBinding-Bindung verwendet. Weitere Informationen zum Verwenden von WCF-Konfigurationen finden Sie unter Konfigurieren von Windows Communication Foundation-Anwendungen.
Erstellen Sie einen Host für den OrderProcessing-Dienst mit ServiceHost, der Nachrichten aus der Warteschlange liest und sie verarbeitet.
Öffnen Sie den Diensthost, um den Dienst verfügbar zu machen.
Schließen Sie den Diensthost.
So erstellen Sie einen Client für einen Dienst in der Warteschlange
Erstellen Sie den WCF-Client mit dem Tool Svcutil.exe.
Definieren Sie einen ServiceEndpoint in einer Konfiguration, der die Dienstadresse festlegt und die Standard-NetMsmqBinding-Bindung verwendet.
Erstellen Sie einen Transaktionsbereich zum Schreiben in die Transaktionswarteschlange.
Rufen Sie den Rechnervorgang auf.
Schließen Sie den WCF-Client.
Beispiel
Siehe auch
Aufgaben
Gewusst wie: Nachrichtenaustausch mit WCF-Endpunkten und Message Queuing-Anwendungen