Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het ReliableSession-voorbeeld laat zien hoe u een aangepaste binding configureert met verschillende transport- en berichtcoderingselementen, met name het inschakelen van betrouwbare sessies. Een aangepaste binding wordt gedefinieerd door een geordende lijst met discrete bindingselementen.
Voorbeeldgegevens
Betrouwbare sessies bieden functies voor betrouwbare berichten en sessies. Betrouwbare berichten keren bij mislukking de communicatie terug en staan toe dat bezorgingsgaranties, zoals de juiste volgorde van aankomst van berichten, gespecificeerd worden. Sessies behouden de status voor clients tussen aanroepen. Het voorbeeld implementeert sessies voor het onderhouden van de clientstatus en geeft in-order leveringsgaranties op. Het voorbeeld is gebaseerd op de Aan de slag waarmee een rekenmachineservice wordt geïmplementeerd. De betrouwbare sessiefuncties worden ingeschakeld en geconfigureerd in de toepassingsconfiguratiebestanden voor de client en service.
Opmerking
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
De volgorde van bindingselementen is belangrijk bij het definiëren van een aangepaste binding, omdat elk een laag in de kanaalstack vertegenwoordigt (zie Aangepaste bindingen).
De serviceconfiguratie voor het voorbeeld wordt gedefinieerd zoals wordt weergegeven in het volgende codevoorbeeld.
<?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>
Wanneer u werkt in een scenario met meerdere machines, moet u het eindpuntadres van de client wijzigen zodat het de hostnaam van de service weerspiegelt.
Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. Druk op Enter in het clientvenster om de client af te sluiten.
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.
Het voorbeeld instellen, compileren en uitvoeren
Installeer ASP.NET 4.0 met de volgende opdracht:
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableZorg ervoor dat u de One-Time Setup Procedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in Het bouwen van de Windows Communication Foundation-voorbeelden.
Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Windows Communication Foundation-voorbeelden uitvoeren.
Belangrijk
Wanneer u de client uitvoert in een configuratie tussen computers, moet u 'localhost' vervangen in zowel het
addresskenmerk van het <eindpuntelement> als hetclientBaseAddresskenmerk van de <compositeDuplex> door de naam van de juiste computer, zoals wordt weergegeven in het volgende voorbeeld.<endpoint name = "" address="http://service_machine_name/servicemodelsamples/service.svc" /> <compositeDuplex clientBaseAddress="http://client_machine_name:8000/myClient/" />