Partager via


ASP.NET Compatibility

Cet exemple illustre comment activer le mode de compatibilité ASP.NET dans Windows Communication Foundation (WCF). Les services qui s'exécutent dans le mode de compatibilité ASP.NET participent pleinement au pipeline de l'application ASP.NET et peuvent utiliser des fonctionnalités ASP.NET telles que l'autorisation de fichier/d'URL, l'état de session et la classe HttpContext. La classe HttpContext permet l'accès aux cookies, aux sessions ainsi qu'à d'autres fonctionnalités ASP.NET. Dans ce mode, les liaisons doivent utiliser le transport HTTP et le service lui-même doit être hébergé dans les services IIS.

Dans cet exemple, le client est une application console (fichier exécutable) et le service est hébergé dans les services IIS

ms752234.note(fr-fr,VS.90).gifRemarque :
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent en fin de rubrique.

Cet exemple est basé sur Getting Started, exemple qui implémente un service de calculatrice. Les contrats ICalculator et ICalculatorSession ont été modifiés pour permettre à un ensemble d'opérations d'être effectuées tout en conservant un résultat d'exécution.

[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface ICalculatorSession
{
    [OperationContract]
    void Clear();
    [OperationContract]
    void AddTo(double n);
    [OperationContract]
    void SubtractFrom(double n);
    [OperationContract]
    void MultiplyBy(double n);
    [OperationContract]
    void DivideBy(double n);
    [OperationContract]
    double Result();
}

Le service conserve l'état de chaque client (à l'aide de la fonctionnalité correspondante) tandis que plusieurs opérations de service sont appelées pour effectuer un calcul. Le client peut récupérer le résultat actuel en appelant Result et remettre le résultat à zéro en appelant Clear.

Le service utilise la session ASP.NET pour stocker le résultat de chaque session de client. Cela lui permet de conserver le résultat d'exécution de chaque client tandis qu'il reçoit plusieurs appels.

ms752234.note(fr-fr,VS.90).gifRemarque :
L'état de session ASP.NET et les sessions WCF sont deux fonctionnalités très différentes l'une de l'autre. Consultez Session pour plus d'informations sur les sessions WCF.

Le service dépend étroitement de l'état de session ASP.NET et nécessite que le mode de compatibilité ASP.NET fonctionne correctement. Ces spécifications sont définies de manière déclarative en appliquant l'attribut AspNetCompatibilityRequirements.

[AspNetCompatibilityRequirements(RequirementsMode =
                       AspNetCompatibilityRequirementsMode.Required)]
public class CalculatorService : ICalculatorSession
{
    double Result
    {  // store result in AspNet Session
       get {
          if (HttpContext.Current.Session["Result"] != null)
             return (double)HttpContext.Current.Session["Result"];
          return 0.0D;
       }
       set
       {
          HttpContext.Current.Session["Result"] = value;
       }
    }
    public void Clear()
    {
        Result = 0.0D;
    }
    public void AddTo(double n)
    {
        Result += n;
    }
    public void SubtractFrom(double n)
    {
        Result -= n;
    }
    public void MultiplyBy(double n)
    {
        Result *= n;
    }
    public void DivideBy(double n)
    {
        Result /= n;
    }
    public double Result()
    {
        return Result;
    }
}

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

    0, + 100, - 50, * 17.65, / 2 = 441.25
    Press <ENTER> to terminate client.

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

  1. Assurez-vous d'avoir effectué la procédure figurant à la section 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 la rubrique Génération des exemples Windows Communication Foundation.

  3. Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.