Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im Imperativen Beispiel wird veranschaulicht, wie imperativer Code geschrieben wird, um benutzerdefinierte Bindungen zu definieren und zu verwenden, ohne eine Konfigurationsdatei oder einen von Windows Communication Foundation (WCF) generierten Client zu verwenden. In diesem Beispiel werden die vom HTTP-Transport bereitgestellten Features und der zuverlässige Sitzungskanal kombiniert, um eine zuverlässige HTTP-basierte Bindung zu erstellen. Dieses Beispiel basiert auf dem Abschnitt Erste Schritte, der einen Rechnerdienst implementiert.
Hinweis
Die Einrichtungsverfahren und Build-Anweisungen für dieses Beispiel befinden sich am Ende dieses Themas.
Sowohl für den Client als auch für den Dienst wird eine benutzerdefinierte Bindung erstellt, die zwei Bindungselemente enthält (zuverlässige Sitzung und HTTP):
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
CustomBinding binding = new CustomBinding(reliableSession, httpTransport);
Im Dienst wird die Bindung verwendet, indem ein Endpunkt zum ServiceHost hinzugefügt wird:
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");
Auf dem Client wird die Bindung von ChannelFactory verwendet, um einen Kanal zum Dienst zu erstellen:
EndpointAddress address = new EndpointAddress("http://localhost:8000/servicemodelsamples/service");
ChannelFactory<ICalculator> channelFactory = new ChannelFactory<ICalculator>(binding, address);
ICalculator channel = channelFactory.CreateChannel();
Dieser Kanal wird dann für die Interaktion mit dem Dienst verwendet:
// Call the Add service operation.
double value1 = 100.00D;
double value2 = 15.99D;
double result = channel.Add(value1, value2);
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);
Wenn Sie das Beispiel ausführen, werden die Vorgangsanforderungen und -antworten im Clientkonsolenfenster angezeigt. Drücken Sie im Clientfenster die EINGABETASTE, um den Client zu schließen.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
So können Sie das Beispiel einrichten, erstellen und ausführen
Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispiele ausgeführt haben.
Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.
Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den Anweisungen unter Durchführen der Windows Communication Foundation-Beispiele.