Freigeben über


Gewusst wie: Zugreifen auf Dienste mit einem Duplexvertrag

Eine Funktion von Windows Communication Foundation (WCF) besteht in der Fähigkeit, einen Dienst zu erstellen, der ein Duplexnachrichtenmuster verwendet. Anhand dieses Musters kann ein Dienst mit dem Client über einen Rückruf kommunizieren Dieses Thema beschreibt die Schritte, mit denen Sie einen WCF-Client in einer Client-Klasse, die die Rückrufschnittstelle implementiert, erstellen können.

Eine Dualbindung macht die IP-Adresse des Clients für den Dienst verfügbar. Der Client sollte Sicherheit eingestellt haben, um sicherzustellen, dass nur Verbindungen zu vertrauensvollen Diensten hergestellt werden.

Ein Lernprogramm zum Erstellen eines grundlegenden WCF-Dienstes und - Clients finden Sie im Lernprogramm "Erste Schritte".

So greifen Sie auf einen Duplexdienst zu

  1. Erstellen Sie einen Dienst, der zwei Schnittstellen enthält. Die erste Schnittstelle ist dem Dienst vorbehalten, die zweite Schnittstelle wird für den Rückruf verwendet. Weitere Informationen zum Erstellen eines Duplexdienstes finden Sie unter Gewusst wie: Erstellen eines Duplexvertrags.

  2. Führen Sie den Dienst aus.

  3. Verwenden Sie das ServiceModel Metadata Utility Tool (Svcutil.exe), um die Verträge (Schnittstellen) für den Client zu generieren. Weitere Informationen dazu finden Sie unter Gewusst wie: Erstellen eines Windows Communication Foundation-Clients.

  4. Implementieren Sie die Rückrufschnittstelle in der Client-Klasse, wie im nachfolgenden Beispiel dargestellt.

    public class CallbackHandler : ICalculatorDuplexCallback
    {
        public void Result(double result)
        {
            Console.WriteLine("Result ({0})", result);
        }
        public void Equation(string equation)
        {
            Console.WriteLine("Equation({0})", equation);
        }
    }
    
    Public Class CallbackHandler 
    Implements ICalculatorDuplexCallback
       Public Sub Result (ByVal result As Double)
          Console.WriteLine("Result ({0})", result)
       End Sub
        Public Sub Equation(ByVal equation As String)
            Console.Writeline("Equation({0})", equation)
        End Sub
    End Class
    
  5. Erstellen Sie eine Instanz der InstanceContext-Klasse. Der Konstruktor benötigt eine Instanz der Client-Klasse.

    InstanceContext site = new InstanceContext(new CallbackHandler());
    
    Dim site As InstanceContext = New InstanceContext(new CallbackHandler())
    
  6. Erstellen Sie eine Instanz des WCF-Clients mit dem Konstruktor, für den ein InstanceContext-Objekt erforderlich ist. Der zweite Parameter des Konstruktors ist der Name eines Endpunkts in der Konfigurationsdatei.

    CalculatorDuplexClient wcfClient = 
    new CalculatorDuplexClient(site, "default")
    
    Dim wcfClient As New CalculatorDuplexClient(site, "default")
    
  7. Rufen Sie die Methoden des WCF-Clients wie erforderlich auf.

Beispiel

Im folgenden Codebeispiel wird das Erstellen einer Client-Klasse veranschaulicht, die auf einen Duplexvertrag zugreift.

Sicherheit

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Duplexvertrags
Gewusst wie: Erstellen eines Windows Communication Foundation-Clients
Gewusst wie: Verwenden der ChannelFactory

Weitere Ressourcen

Lernprogramm "Erste Schritte"
ServiceModel Metadata Utility Tool (Svcutil.exe)