Partager via


Comportement du service par défaut

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

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

Remarque

La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.

La classe de service spécifie les comportements avec le ServiceBehaviorAttribute et le OperationBehaviorAttribute, comme indiqué dans 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 certains de ces comportements.

Comportement du service Descriptif
AutomaticSessionShutdown Arrête automatiquement une session à la demande du client.
ConcurrencyMode Spécifie le mode de concurrence pour chaque instance de service.
InstanceContextMode Spécifie le mode de contexte de l’instance.
UseSynchronizationContext Détermine s’il faut utiliser le contexte de synchronisation fourni, le cas échéant. Utilisez cette option lorsque vous souhaitez contrôler s'il faut utiliser un WindowsFormsSynchronizationContext dans les applications Windows Forms.
IncludeExceptionDetailInFaults Détermine si les exceptions d’exécution non gérées générales doivent être converties en message Fault<string> d’erreur et envoyées en tant que 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 certains de ces comportements.

Comportement de l’opération Descriptif
TransactionAutoComplete Détermine si l’achèvement de l’opération de service valide la transaction actuelle.
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 de l’opération s’affichent dans la fenêtre de la console cliente. Le délai entre les appels est dû aux appels à System.Threading.Thread.Sleep() effectués dans le cadre des opérations de service. Le reste des exemples de comportement expliquent ces comportements plus en détail. Appuyez sur Entrée dans la fenêtre du client pour arrêter le client.

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’exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans la rubrique Exécution des exemples Windows Communication Foundation.