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.
Hiermee definieert u de instelling voor WS-Reliable Messaging. Wanneer dit element wordt toegevoegd aan een aangepaste binding, kan het resulterende kanaal exactly-once leveringsgaranties ondersteunen.
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding>
<reliableSession>
Syntaxis
<reliableSession acknowledgementInterval="TimeSpan"
flowControlEnabled="Boolean"
inactivityTimeout="TimeSpan"
maxPendingChannels="Integer"
maxRetryCount="Integer"
maxTransferWindowSize="Integer"
reliableMessagingVersion="Default/WSReliableMessagingFebruary2005/WSReliableMessaging11"
ordered="Boolean" />
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.
Attributes
| Attribute | Description |
|---|---|
| bevestigingsinterval | Een TimeSpan met het maximale tijdsinterval dat het kanaal bevat, wacht totdat er een bevestiging wordt verzonden voor berichten die tot dat moment zijn ontvangen. De standaardwaarde is 00:00:0.2. |
| flowControlEnabled | Een Booleaanse waarde die aangeeft of geavanceerd stroombeheer, een microsoft-specifieke implementatie van stroombeheer voor WS-Reliable berichten, wordt geactiveerd. De standaardwaarde is true. |
| inactivityTimeout | Een TimeSpan die de maximale duur aangeeft die het kanaal toestaat dat de andere communicatiepartij geen berichten verzendt, voordat er een fout optreedt in het kanaal. De standaardwaarde is 00:10:00. Activiteit op een kanaal wordt gedefinieerd als het ontvangen van een toepassings- of infrastructuurberichten. Deze eigenschap bepaalt de maximale tijdsduur om een inactieve sessie actief te houden. Als de tijd langer duurt zonder activiteit, wordt de sessie afgebroken door de infrastructuur en de kanaalfouten. Notitie: Het is niet nodig dat de toepassing periodiek berichten verzendt om de verbinding actief te houden. |
| maxPendingChannels | Een geheel getal dat het maximum aantal kanalen aangeeft dat kan wachten op de listener die moet worden geaccepteerd. Deze waarde moet tussen 1 en 16384 liggen. De standaard is 4. Kanalen zijn in behandeling wanneer ze wachten om te worden geaccepteerd. Zodra deze limiet is bereikt, worden er geen kanalen gemaakt. In plaats daarvan worden ze in de modus In behandeling geplaatst totdat dit aantal uitvalt (door in behandeling zijnde kanalen te accepteren). Dit is een limiet per fabriek. Wanneer de drempelwaarde is bereikt en een externe toepassing probeert een nieuwe betrouwbare sessie tot stand te brengen, wordt de aanvraag geweigerd en wordt de geopende bewerking die deze fouten heeft gevraagd, geweigerd. Deze limiet geldt niet voor het aantal uitgaande kanalen dat in behandeling is. |
| maximaal aantal pogingen | Een geheel getal dat het maximum aantal keren aangeeft dat een betrouwbaar kanaal probeert een bericht opnieuw te verzenden waarvoor het geen bevestiging heeft ontvangen, door Verzenden aan te roepen op het onderliggende kanaal. Deze waarde moet groter zijn dan nul. De standaardwaarde is 8. Deze waarde moet een geheel getal groter dan nul zijn. Als er geen bevestiging wordt ontvangen na de laatste herverzending, treedt er een fout op in het kanaal. Een bericht wordt beschouwd als verzonden als de geadresseerde de bezorging ervan heeft bevestigd. Als een bevestiging niet binnen een bepaalde tijd is ontvangen voor een bericht dat is verzonden, wordt het bericht automatisch opnieuw door de infrastructuur verzonden. De infrastructuur probeert het bericht maximaal het aantal keren dat door deze eigenschap is opgegeven, opnieuw te verzenden. Als er geen bevestiging wordt ontvangen na de laatste herverzending, treedt er een fout op in het kanaal. De infrastructuur maakt gebruik van een exponentieel back-off-algoritme om te bepalen wanneer ze opnieuw moeten worden verzonden, op basis van een berekende gemiddelde retourtijd. De tijd begint in eerste instantie bij 1 seconde voor de hertransmissie en verdubbelt de vertraging bij elke poging, wat resulteert in ongeveer 8,5 minuten tussen de eerste transmissiepoging en de laatste poging tot opnieuw verzenden. De tijd voor de eerste hertransmissiepoging wordt aangepast op basis van de berekende retourtijd en de resulterende tijdsduur die deze pogingen nemen, varieert dienovereenkomstig. Hierdoor kan de hertransmissietijd dynamisch worden aangepast aan verschillende netwerkomstandigheden. |
| maxTransferWindowSize | Een geheel getal dat de maximale grootte van de buffer aangeeft. Geldige waarden liggen tussen 1 en 4096. Op de client definieert dit kenmerk de maximale grootte van de buffer die door een betrouwbaar kanaal wordt gebruikt om berichten te bewaren die nog niet zijn bevestigd door de ontvanger. De eenheid van het quotum is een bericht. Als de buffer vol is, worden verdere VERZENDbewerkingen geblokkeerd. Op de ontvanger definieert dit kenmerk de maximale grootte van de buffer die door het kanaal wordt gebruikt om binnenkomende berichten op te slaan die nog niet naar de toepassing zijn verzonden. Als de buffer vol is, worden verdere berichten op de achtergrond verwijderd door de ontvanger en moeten ze opnieuw worden verzonden door de client. |
| Besteld | Een Booleaanse waarde die aangeeft of berichten gegarandeerd binnenkomen in de volgorde waarin ze zijn verzonden. Als deze instelling is falseingesteld, kunnen berichten buiten de volgorde komen. De standaardwaarde is true. |
| reliableMessagingVersion | Een geldige waarde waaruit ReliableMessagingVersion de WS-ReliableMessaging versie moet worden gebruikt. |
Kind-elementen
Geen
Bovenliggende elementen
| Onderdeel | Description |
|---|---|
| <bindend> | Definieert alle bindingsmogelijkheden van de aangepaste binding. |
Opmerkingen
Betrouwbare sessies bieden functies voor betrouwbare berichten en sessies. Betrouwbare berichten proberen de communicatie over mislukte berichten opnieuw uit te voeren en staat toe dat bezorgingsgaranties, zoals de ontvangst van berichten, worden opgegeven. Sessies behouden de status voor clients tussen aanroepen. Dit element biedt ook optioneel geordende berichtbezorging. Deze geïmplementeerde sessie kan SOAP- en transporttussenpersonen kruisen.
Elk bindingselement vertegenwoordigt een verwerkingsstap bij het verzenden of ontvangen van berichten. Tijdens runtime maken bindingselementen de kanaalfactory's en listeners die nodig zijn om uitgaande en binnenkomende kanaalstacks te bouwen die nodig zijn voor het verzenden en ontvangen van berichten. De reliableSession biedt een optionele laag in de stack waarmee een betrouwbare sessie tussen eindpunten tot stand kan worden gebracht en het gedrag van deze sessie kan worden geconfigureerd.
Zie Reliable Sessions voor meer informatie.
Example
In het volgende voorbeeld ziet u hoe u een aangepaste binding configureert met verschillende transport- en berichtcoderingselementen, met name het inschakelen van betrouwbare sessies, die de clientstatus behouden en leveringsgaranties opgeeft. Deze functie is geconfigureerd in de toepassingsconfiguratiebestanden voor de client en service. In het voorbeeld ziet u de serviceconfiguratie.
<?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>