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 Beispiel "ReliableSession " wird veranschaulicht, wie eine benutzerdefinierte Bindung mit verschiedenen Transport- und Nachrichtencodierungselementen konfiguriert wird, insbesondere für zuverlässige Sitzungen. Eine benutzerdefinierte Bindung wird durch eine sortierte Liste von einzelnen Bindungselementen definiert.
Beispieldetails
Zuverlässige Sitzungen bieten Funktionen für zuverlässige Nachrichten und Sitzungen. Das zuverlässige Messaging versucht bei Fehlern die Kommunikation erneut und ermöglicht die Angabe von Zustellgarantien, wie z. B. das korrekte Eintreffen von Nachrichten in der richtigen Reihenfolge. Die Sitzungen erhalten den Status von Clients im Verlauf der verschiedenen Aufrufe aufrecht. Im Beispiel werden Sitzungen zum Aufrechterhalten des Clientstatus implementiert und eine Zustellungszusicherungen anhand der Nachrichtenreihenfolge festgelegt. Dieses Beispiel basiert auf Erste Schritte, worin ein Taschenrechnerdienst implementiert wird. Die zuverlässigen Sitzungsfeatures sind in den Anwendungskonfigurationsdateien für den Client und Dienst aktiviert und konfiguriert.
Hinweis
Die Einrichtungsschritte und Bauanleitungen für dieses Beispiel finden Sie am Ende dieses Abschnitts.
Die Sortierung von Bindungselementen ist wichtig beim Definieren einer benutzerdefinierten Bindung, da jede eine Ebene im Kanalstapel darstellt (siehe benutzerdefinierte Bindungen).
Die Dienstkonfiguration für das Beispiel wird wie im folgenden Codebeispiel dargestellt definiert.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- This endpoint is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc -->
<!-- specify customBinding binding and a binding configuration to use -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- The mex endpoint is exposed at http://localhost/servicemodelsamples/service.svc/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<!-- custom binding configuration - configures HTTP transport, reliable sessions -->
<bindings>
<customBinding>
<binding name="Binding1">
<reliableSession />
<security authenticationMode="SecureConversation"
requireSecurityContextCancellation="true">
</security>
<compositeDuplex />
<oneWay />
<textMessageEncoding messageVersion="Soap12WSAddressing10" writeEncoding="utf-8" />
<httpTransport authenticationScheme="Anonymous" bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
proxyAuthenticationScheme="Anonymous" realm=""
useDefaultWebProxy="true" />
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Wenn Sie in einem computerübergreifenden Szenario arbeiten, müssen Sie die Endpunktadresse des Clients ändern, damit sie den Hostnamen des Dienstes anzeigt.
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
Installieren Sie ASP.NET 4.0 mit dem folgenden Befehl:
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableStellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgefü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.
Von Bedeutung
Wenn Sie den Client in einer computerübergreifenden Konfiguration ausführen, müssen Sie "localhost" sowohl im Attribut des > als auch im
clientBaseAddressAttribut des <compositeDuplex-Elements> durch den Namen des entsprechenden Computers ersetzen, wie im folgenden Beispiel gezeigt.<endpoint name = "" address="http://service_machine_name/servicemodelsamples/service.svc" /> <compositeDuplex clientBaseAddress="http://client_machine_name:8000/myClient/" />