<reliableSession ><reliableSession>

Définit le paramètre pour la messagerie WS-Reliable.Defines setting for WS-Reliable Messaging. Lorsque cet élément est ajouté à une liaison personnalisée, le canal résultant peut prendre en charge des assurances de remise EOD (Exactly-Once-Delivery).When this element is added to a custom binding, the resulting channel can support exactly-once delivery assurances.

<configuration> <configuration>
    <system. serviceModel >   <system.serviceModel>
    liaisons<    <bindings></span>       <customBinding >       <customBinding>
        < **        <binding></span>           <reliableSession >          <reliableSession>

SyntaxeSyntax

<reliableSession acknowledgementInterval="TimeSpan"
                 flowControlEnabled="Boolean"
                 inactivityTimeout="TimeSpan"
                 maxPendingChannels="Integer"
                 maxRetryCount="Integer"
                 maxTransferWindowSize="Integer"
                 reliableMessagingVersion="Default/WSReliableMessagingFebruary2005/WSReliableMessaging11"
                 ordered="Boolean" />

Attributs et élémentsAttributes and Elements

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.The following sections describe attributes, child elements, and parent elements.

AttributsAttributes

AttributAttribute DescriptionDescription
acknowledgementIntervalacknowledgementInterval TimeSpan qui contient l'intervalle de temps maximum pendant lequel le canal doit attendre avant d'envoyer un accusé de réception pour les messages reçus jusqu'alors.A TimeSpan that contains the maximum time interval the channel is going to wait to send an acknowledgment for messages received up to that point. La valeur par défaut est 00:00:0.2.The default is 00:00:0.2.
flowControlEnabledflowControlEnabled Valeur booléenne qui indique si le contrôle de flux avancé (une implémentation du contrôle de flux de la messagerie WS-Reliable spécifique à Microsoft) est activé.A Boolean value that indicates whether advanced flow control, a Microsoft-specific implementation of flow control for WS-Reliable messaging, is activated. La valeur par défaut est true,The default is true.
inactivityTimeoutinactivityTimeout TimeSpan qui spécifie la durée maximale pendant laquelle le canal autorisera l'autre partie communicante à ne pas envoyer de messages avant qu'une erreur soit provoquée sur le canal.A TimeSpan that specifies the maximum duration that the channel is going to allow the other communication party not to send any messages, before faulting the channel. La valeur par défaut est 00:10:00.The default is 00:10:00.

L'activité sur un canal est définie comme étant la réception de messages d'application ou d'infrastructure.Activity on a channel is defined as receiving an application or infrastructure messages. Cette propriété contrôle la durée maximale d'activation d'une session inactive.This property controls the maximum amount of time to keep an inactive session alive. En cas de durée supérieure sans activité, la session est abandonnée par l'infrastructure et une erreur est provoquée sur le canal.If longer time passes with no activity, the session is aborted by the infrastructure and the channel faults. Remarque : Il n’est pas nécessaire que l’application envoie régulièrement des messages pour maintenir la connexion active.Note: It is not necessary for the application to periodically send messages to keep the connection alive.
maxPendingChannelsmaxPendingChannels Entier qui spécifie le nombre maximal de canaux en attente d'être acceptés sur l'écouteur.An integer that specifies the maximum number of channels that can wait on the listener to be accepted. Cette valeur doit être comprise entre 1 et 16 384 inclus.This value should be between 1 to 16384 inclusive. La valeur par défaut est 4.The default is 4.

Les canaux sont en attente lorsqu'ils attendent d'être acceptés.Channels are pending when they are waiting to be accepted. Une fois que cette limite est atteinte, aucun canal n'est créé.Once that limit is reached, no channels are created. Au contraire, ils sont mis en mode d'attente jusqu'à ce que ce nombre se réduise (en acceptant des canaux en attente).Rather, they are put in pending mode until this number goes down (by accepting pending channels). Cette limite dépend des fabriques.This is a per-factory limit.

Lorsque le seuil est atteint et qu'une application distante essaie d'établir une nouvelle session fiable, la demande est refusée et l'opération d'ouverture initiale notifie l'erreur.When the threshold is reached and a remote application tries to establish a new reliable session, the request is denied and the open operation that prompted this faults. Cette limite ne s'applique pas au nombre de canaux sortants en attente.This limit does not apply to the number of pending outgoing channels.
maxRetryCountmaxRetryCount Entier qui spécifie le nombre maximal de tentatives effectuées par un canal fiable pour retransmettre un message pour lequel il n'a pas reçu d'accusé de réception en appelant Send sur son canal sous-jacent.An integer that specifies the maximum number of times a reliable channel attempts to retransmit a message it has not received an acknowledgment for, by calling Send on its underlying channel.

Cette valeur doit être supérieure à zéro.This value should be greater than zero. La valeur par défaut est 8.The default is 8.

Cette valeur doit être un entier supérieur à zéro.This value should be an integer greater than zero. Si aucun accusé de réception n'est reçu après la dernière retransmission, le canal notifie l'erreur.If an acknowledgment is not received after the last retransmission, the channel faults.

Un message est considéré comme devant être transféré si sa remise au destinataire a été acceptée par le destinataire.A message is considered to be transferred if its delivery at the recipient has been acknowledged by the recipient.

Si, pour un message ayant été transmis, aucun accusé de réception n'a été reçu après un certain temps, l'infrastructure retransmet automatiquement le message.If an acknowledgment has not been received within a certain amount of time for a message that has been transmitted, the infrastructure automatically retransmits the message. L'infrastructure essaie de renvoyer le message à autant de reprises que celles spécifiées par cette propriété.The infrastructure tries to resend the message for at most the number of times specified by this property. Si aucun accusé de réception n'est reçu après la dernière retransmission, le canal notifie l'erreur.If an acknowledgment is not received after the last retransmission, the channel faults.

L'infrastructure utilise un algorithme de réduction de puissance exponentiel pour déterminer quand retransmettre, selon un délai aller-retour moyen calculé.The infrastructure uses an exponential back-off algorithm to determine when to retransmit, based on a computed average round-trip time. Ce délai démarre initialement 1 seconde avant la retransmission et, le délai doublant à chaque tentative, le délai écoulé entre la première et la dernière tentative de retransmission est d'environ 8,5 minutes.The time initially starts at 1 second before retransmission and doubling the delay with every attempt, which results in approximately 8.5 minutes passing between the first transmission attempt and the last retransmission attempt. Le délai de la première tentative de retransmission est ajusté au délai aller-retour calculé et le décalage créé par ces tentatives varie en conséquence.The time for the first retransmission attempt is adjusted according to the calculated round-trip time and the resulting stretch of time that those attempts take varies accordingly. Cela permet au délai de retransmission de s'adapter dynamiquement aux conditions de réseau variables.This allows the retransmission time to dynamically adapt to varying network conditions.
maxTransferWindowSizemaxTransferWindowSize Entier qui spécifie la taille maximale de la mémoire tampon.An integer that specifies the maximum size of the buffer. Les valeurs autorisées sont comprises entre 1 et 4 096 (inclus).Valid values are from 1 to 4096 inclusive.

Pour le client, cet attribut définit la taille maximale de la mémoire tampon utilisée par un canal fiable pour contenir les messages n'ayant pas encore été acceptés par le récepteur.On the client, this attribute defines the maximum size of the buffer used by a reliable channel to hold messages not yet acknowledged by the receiver. L'unité du quota est un message.The unit of the quota is a message. Si la mémoire tampon est pleine, les opérations SEND suivantes sont bloquées.If the buffer is full, further SEND operations are blocked.

Pour le récepteur, cet attribut définit la taille maximale de la mémoire tampon utilisée par le canal pour stocker les messages entrants n'ayant pas encore été distribués dans l'application.On the receiver, this attribute defines the maximum size of the buffer used by the channel to store incoming messages not yet dispatched to the application. Si la mémoire tampon est pleine, les messages suivants sont supprimés de manière silencieuse par le récepteur et doivent être retransmis par le client.If the buffer is full, further messages are silently dropped by the receiver and require retransmission by the client.
orderedordered Valeur booléenne qui spécifie s'il est garanti que les messages arrivent dans l'ordre dans lequel ils ont été envoyés.A Boolean that specifies whether messages are guaranteed to arrive in the order they were sent. Si ce paramètre est false, les messages peuvent arriver dans le désordre.If this setting is false, messages can arrive out of order. La valeur par défaut est true,The default is true.
reliableMessagingVersionreliableMessagingVersion Valeur autorisée de ReliableMessagingVersion qui spécifie la version de messagerie WS-Reliable à utiliser.A valid value from ReliableMessagingVersion that specifies the WS-ReliableMessaging version to be used.

Éléments enfantsChild Elements

aucune.None

Éléments parentsParent Elements

ÉlémentElement DescriptionDescription
liaison de <<binding> Définit toutes les fonctions de liaison d’une liaison personnalisée.Defines all binding capabilities of the custom binding.

NotesRemarks

Les sessions fiables fournissent des fonctionnalités pour une messagerie et des sessions fiables.Reliable sessions provide features for reliable messaging and sessions. La messagerie fiable réessaie d'établir la communication en cas d'échec et permet de spécifier des assurances de remise telles que l'ordre d'arrivée des messages.Reliable messaging retries communication on failure and allows delivery assurances such as in-order arrival of messages to be specified. Les sessions conservent l'état pour les clients entre les appels.Sessions maintain state for clients between calls. Cet élément assure également en option la remise de messages ordonnés.This element also optionally provides ordered message delivery. Cette session implémentée peut croiser des intermédiaires SOAP et de transport.This implemented session can cross SOAP and transport intermediaries.

Chaque élément de liaison représente une étape de traitement lors de l’envoi ou de la réception des messages.Each binding element represents a processing step when sending or receiving messages. Au moment de l’exécution, les éléments de liaison créent les fabrications de canal et les écouteurs nécessaires pour générer les piles de canaux sortants et entrants requis pour envoyer et recevoir des messages.At runtime, binding elements create the channel factories and listeners that are necessary to build outgoing and incoming channel stacks required to send and receive messages. Le reliableSession fournit une couche facultative dans la pile capable d'établir une session fiable entre des points de terminaison et de configurer le comportement de cette session.The reliableSession provides an optional layer in the stack that can establish a reliable session between endpoints and configure the behavior of this session.

Pour plus d’informations, consultez sessions fiables.For more information, see Reliable Sessions.

ExempleExample

L’exemple suivant montre comment configurer une liaison personnalisée avec plusieurs éléments de transport et d’encodage de message, en activant surtout des sessions fiables qui maintiennent l’état du client et spécifient des assurances de remise dans l’ordre.The following example demonstrates how to configure a custom binding with various transport and message encoding elements, especially enabling reliable sessions, which maintains client state and specifies in-order delivery assurances. Cette fonctionnalité est configurée dans les fichiers de configuration de l'application pour le client et le service.This feature is configured in the application configuration files for the client and service. L'exemple présente la configuration du service.The example show the service configuration.

<?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>

Voir aussiSee also