Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Exemplet ReliableSession visar hur du konfigurerar en anpassad bindning med olika transport- och meddelandekodningselement, särskilt när du aktiverar tillförlitliga sessioner. En anpassad bindning definieras av en ordnad lista med diskreta bindningselement.
Exempelinformation
Tillförlitliga sessioner ger funktioner för tillförlitliga meddelanden och sessioner. Tillförlitlig meddelandehantering försöker kommunicera igen vid fel och gör det möjligt att ange leveransgarantier, såsom att meddelanden anländer i rätt ordning. Sessioner underhåller tillstånd för klienter mellan anrop. Exemplet implementerar sessioner för att upprätthålla klienttillståndet och anger leveransgarantier i ordning. Detta exempel är baserat på Komma igång som implementerar en kalkylatortjänst. De tillförlitliga sessionsfunktionerna är aktiverade och konfigurerade i programkonfigurationsfilerna för klienten och tjänsten.
Anmärkning
Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Ordningen på bindningselement är viktig för att definiera en anpassad bindning, eftersom var och en representerar ett lager i kanalstacken (se Anpassade bindningar).
Tjänstkonfigurationen för exemplet definieras enligt följande kodexempel.
<?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>
När du kör i ett scenario mellan datorer måste du ändra klientens slutpunktsadress så att den återspeglar tjänstens värdnamn.
När du kör exemplet visas åtgärdsbegäranden och svar i klientkonsolfönstret. Tryck på RETUR i klientfönstret för att stänga av klienten.
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.
Så här konfigurerar du, skapar och kör exemplet
Installera ASP.NET 4.0 med följande kommando:
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableKontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.
Viktigt!
När du kör klienten i en konfiguration mellan datorer måste du ersätta "localhost" i både
addressattributet <för slutpunktselementet> ochclientBaseAddressattributet <för compositeDuplex> med namnet på rätt dator, som du ser i följande exempel.<endpoint name = "" address="http://service_machine_name/servicemodelsamples/service.svc" /> <compositeDuplex clientBaseAddress="http://client_machine_name:8000/myClient/" />