Default Service Behavior

L’exemple Default montre comment les paramètres de comportement du service peuvent être configurés. Cet exemple est basé sur la Prise en main, qui implémente le contrat de service ICalculator. Cet exemple définit explicitement des comportements de service et des comportements d'opération à l'aide des attributs ServiceBehaviorAttribute et OperationBehaviorAttribute. Vous pouvez configurer les comportements dans les fichiers de configuration ou impérativement dans le code (comme le montre cet exemple).

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

Notes

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

La classe de service spécifie des comportements avec l'ServiceBehaviorAttribute et l'OperationBehaviorAttribute comme le montre l'exemple de code suivant. Toutes les valeurs spécifiées sont les valeurs par défaut.

[ServiceBehavior(
    AutomaticSessionShutdown=true,
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,
    IncludeExceptionDetailInFaults=false,
    UseSynchronizationContext=true,
    ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
    [OperationBehavior(
        TransactionAutoComplete=true,
        TransactionScopeRequired=false,
        Impersonation=ImpersonationOption.NotAllowed)]
    public double Add(double n1, double n2)
    {
        System.Threading.Thread.Sleep(1600);
        return n1 + n2;
    }
    ...
}

Les comportements de service sont spécifiés avec l'attribut ServiceBehaviorAttribute. Le tableau suivant décrit quelques-uns de ces comportements.

Comportement de service Description
AutomaticSessionShutdown Ferme automatiquement une session à la demande du client.
ConcurrencyMode Spécifie le mode d'accès concurrentiel pour chaque instance de service.
InstanceContextMode Spécifie le mode de contexte d'instance.
UseSynchronizationContext Détermine s’il faut utiliser le contexte de synchronisation fourni, s’il est défini. Utilisez-le pour contrôler s’il faut utiliser un WindowsFormsSynchronizationContext dans les applications Windows Forms.
IncludeExceptionDetailInFaults Détermine si les exceptions d'exécution non prise en charge générales doivent être converties en Fault<string> et envoyées comme un message d'erreur.
TransactionIsolationLevel Spécifie le niveau d'isolation des transactions.
ValidateMustUnderstand Détermine si les en-têtes de message inattendus provoquent une condition d'erreur.

Les comportements d'opération sont spécifiés à l'aide de l'attribut OperationBehaviorAttribute. Le tableau suivant décrit quelques-uns de ces comportements.

Comportement d'opération Description
TransactionAutoComplete Détermine si l’achèvement de l’opération de service valide la transaction en cours.
TransactionScopeRequired Détermine si l’opération de service s’inscrit dans une transaction transmise par le client.
Impersonation Détermine si l'opération de service emprunte l'identité de l'appelant.
ReleaseInstanceMode Détermine si les instances de service sont recyclées au début ou à la fin de l'appel de l'opération de service.

Lorsque vous exécutez l'exemple, les demandes et réponses d'opération s'affichent dans la fenêtre de console du client. Le délai entre les appels est le résultat des appels passés à System.Threading.Thread.Sleep() dans les opérations de service. Le reste des exemples de comportements explique ces comportements de manière plus détaillée. 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. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  2. 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.

  3. 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.