WS Reliable Session

L’exemple wsReliableSession illustre l’utilisation des sessions fiables. Les sessions fiables fournissent la prise en charge de la messagerie et des sessions fiables. 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. Les sessions conservent l'état pour les clients entre les appels. Cet exemple implémente des sessions permettant de conserver l'état du client et spécifie des assurances de remise par ordre d'arrivée.

Cet exemple est basé sur la Prise en main qui implémente un service de calculatrice. Les fonctionnalités de sessions fiables sont activées et configurées dans les fichiers de configuration d'application respectifs du client et du service.

Dans cet exemple, le service est hébergé dans les services IIS (Internet Information Services) et le client est une application console (.exe).

Notes

La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique.

L'exemple utilise le fichier wsHttpBinding. La liaison est spécifiée dans les fichiers de configuration pour le client et le service. Le type de liaison est spécifié dans l’attribut binding de l’élément de point de terminaison, tel qu’indiqué dans l’exemple de configuration suivant.

<endpoint address=""
          binding="wsHttpBinding"
          bindingConfiguration="Binding1"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Le point de terminaison contient un attribut bindingConfiguration qui référence une configuration de liaison nommée « Binding1 ». La configuration de liaison active les sessions fiables en affectant la valeur true à l’attribut enabled de <reliableSession>. Les assurances de remise pour les sessions ordonnées sont contrôlées en affectant true ou false à l'attribut ordonné. Par défaut, il s’agit de true.

<bindings>
    <wsHttpBinding>
        <binding name="Binding1">
            <reliableSession enabled="true" />
        </binding>
    </wsHttpBinding>
</bindings>

La classe d'implémentation de service implémente l'instanciation PerSession afin de conserver une instance de classe distincte pour chaque client, tel qu'indiqué dans l'exemple de code suivant.

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] public class CalculatorService : ICalculator
{
    ...
}

Lorsque vous exécutez l'exemple, les demandes et réponses d'opération s'affichent dans la fenêtre de console du client. Appuyez sur Entrée dans la fenêtre du client pour l'arrêter.

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.

Pour configurer, générer et exécuter l'exemple

  1. Installez ASP.NET 4.0 à l’aide de la commande suivante.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  3. Pour générer l’édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Building the Windows Communication Foundation Samples.

  4. Pour exécuter l’échantillon dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions fournies dans Exécution des échantillons Windows Communication Foundation.