Partager via


<reliableSession>

Définit le paramètre pour la messagerie WS-Reliable. Lorsque cet élément est ajouté à une liaison personnalisée, le canal résultant peut prendre en charge des garanties de remise exactement une fois.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <reliableSession>

Syntaxe

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributes

Caractéristique Descriptif
acknowledgementInterval Qui TimeSpan contient l’intervalle de temps maximal pendant lequel le canal attend d’envoyer un accusé de réception pour les messages reçus jusqu’à ce point. La valeur par défaut est 00:00:0.2.
flowControlEnabled Valeur booléenne qui indique si le contrôle de flux avancé, une implémentation spécifique à Microsoft du contrôle de flux pour WS-Reliable messagerie, est activée. La valeur par défaut est true.
inactivityTimeout Qui TimeSpan spécifie la durée maximale pendant laquelle le canal va autoriser l’autre partie de communication à ne pas envoyer de messages, avant d’envoyer le canal. La valeur par défaut est 00:10:00.

L’activité sur un canal est définie comme recevant des messages d’application ou d’infrastructure. Cette propriété contrôle la durée maximale de vie d’une session inactive. Si plus de temps passe sans activité, la session est abandonnée par l’infrastructure et les erreurs de canal. Note: Il n’est pas nécessaire que l’application envoie régulièrement des messages pour maintenir la connexion active.
maxPendingChannels Entier qui spécifie le nombre maximal de canaux pouvant attendre que l’écouteur soit accepté. Cette valeur doit être comprise entre 1 et 16384 inclus. Valeur par défaut : 4.

Les canaux sont en attente lorsqu’ils attendent d’être acceptés. Une fois cette limite atteinte, aucun canal n’est créé. Au lieu de cela, ils sont mis en mode en attente jusqu’à ce que ce nombre tombe en panne (en acceptant les canaux en attente). Il s’agit d’une limite par usine.

Lorsque le seuil est atteint et qu’une application distante tente d’établir une nouvelle session fiable, la demande est refusée et l’opération ouverte qui a invité ces erreurs. Cette limite ne s’applique pas au nombre de canaux sortants en attente.
maxRetryCount Entier qui spécifie le nombre maximal de fois où un canal fiable tente de retransmettre un message pour lequel il n’a pas reçu d’accusé de réception, en appelant Envoyer sur son canal sous-jacent.

Cette valeur doit être supérieure à zéro. La valeur par défaut est 8.

Cette valeur doit être un entier supérieur à zéro. Si un accusé de réception n’est pas reçu après la dernière retransmission, le canal échoue.

Un message est considéré comme transféré si sa remise au destinataire a été reconnue par le destinataire.

Si un accusé de réception n’a pas été reçu dans un certain délai pour un message transmis, l’infrastructure retransmet automatiquement le message. L’infrastructure tente de renvoyer le message pour le plus grand nombre de fois spécifié par cette propriété. Si un accusé de réception n’est pas reçu après la dernière retransmission, le canal échoue.

L’infrastructure utilise un algorithme d’interruption exponentielle pour déterminer quand retransmettre, en fonction d’une durée moyenne calculée d’aller-retour. Le temps commence initialement à 1 seconde avant la retransmission et double le délai avec chaque tentative, ce qui entraîne environ 8,5 minutes de passage entre la première tentative de transmission et la dernière tentative de retransmission. La durée de la première tentative de retransmission est ajustée en fonction du temps d’aller-retour calculé et de la durée résultante que ces tentatives prennent varie en conséquence. Cela permet au temps de retransmission de s’adapter dynamiquement aux différentes conditions réseau.
maxTransferWindowSize Entier qui spécifie la taille maximale de la mémoire tampon. Les valeurs valides sont comprises entre 1 et 4096 inclus.

Sur le client, cet attribut définit la taille maximale de la mémoire tampon utilisée par un canal fiable pour contenir les messages non encore reconnus par le récepteur. L’unité du quota est un message. Si la mémoire tampon est pleine, d’autres opérations SEND sont bloquées.

Sur 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 non encore distribués à l’application. Si la mémoire tampon est pleine, d’autres messages sont supprimés en mode silencieux par le récepteur et nécessitent une retransmission par le client.
ordered Boolean qui spécifie si les messages sont garantis pour arriver dans l’ordre dans lequel ils ont été envoyés. Si ce paramètre est falsedéfini, les messages peuvent arriver hors de commande. La valeur par défaut est true.
reliableMessagingVersion Valeur valide à partir de ReliableMessagingVersion laquelle spécifie la version WS-ReliableMessaging à utiliser.

Éléments enfants

Aucun

Éléments parents

Élément Descriptif
<reliure> Définit toutes les fonctionnalités de liaison de la liaison personnalisée.

Remarques

Les sessions fiables fournissent des fonctionnalités pour la messagerie et les sessions fiables. La messagerie fiable retente la communication en cas d’échec et permet aux assurances de remise telles que l’arrivée dans l’ordre des messages à spécifier. Les sessions conservent l’état des clients entre les appels. Cet élément fournit également éventuellement une remise de messages ordonnée. Cette session implémentée peut traverser les intermédiaires SOAP et de transport.

Chaque élément de liaison représente une étape de traitement lors de l’envoi ou de la réception de messages. Au moment de l’exécution, les éléments de liaison créent les fabriques de canaux et les écouteurs nécessaires pour générer des piles de canaux sortantes et entrantes requises pour envoyer et recevoir des messages. Il reliableSession fournit une couche facultative dans la pile qui peut établir une session fiable entre les points de terminaison et configurer le comportement de cette session.

Pour plus d’informations, consultez Sessions fiables.

Example

L’exemple suivant montre comment configurer une liaison personnalisée avec différents éléments d’encodage de transport et de message, en particulier pour activer des sessions fiables, qui conservent l’état du client et spécifient des garanties de remise dans l’ordre. Cette fonctionnalité est configurée dans les fichiers de configuration de l’application pour le client et le service. L’exemple montre la configuration du service.

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