AspNetCompatibilityRequirementsAttribute Classe

Définition

Appliqué à un service Windows Communication Foundation (WCF) pour indiquer si ce service peut être exécuté en mode de compatibilité ASP.NET.

public ref class AspNetCompatibilityRequirementsAttribute sealed : Attribute, System::ServiceModel::Description::IServiceBehavior
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class AspNetCompatibilityRequirementsAttribute : Attribute, System.ServiceModel.Description.IServiceBehavior
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type AspNetCompatibilityRequirementsAttribute = class
    inherit Attribute
    interface IServiceBehavior
Public NotInheritable Class AspNetCompatibilityRequirementsAttribute
Inherits Attribute
Implements IServiceBehavior
Héritage
AspNetCompatibilityRequirementsAttribute
Attributs
Implémente

Exemples

les développeurs de service peuvent s’assurer que leur service n’est exécuté qu’en Mode de compatibilité ASP.NET en affectant RequirementsMode à la propriété de la AspNetCompatibilityRequirementsAttribute valeur Required , comme indiqué dans l’exemple suivant.

[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 Equals();
}
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface ICalculatorSession

    <OperationContract()> _
    Sub Clear()
    <OperationContract()> _
    Sub AddTo(ByVal n As Double)
    <OperationContract()> _
    Sub SubtractFrom(ByVal n As Double)
    <OperationContract()> _
    Sub MultiplyBy(ByVal n As Double)
    <OperationContract()> _
    Sub DivideBy(ByVal n As Double)
    <OperationContract()> _
    Function Equal() As Double
End Interface
[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()
    {
    }

    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 Equals()
    {
        return result;
    }
}
    <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Required)> _
    Public Class CalculatorService
        Implements ICalculatorSession

        Property Result() As Double
            ' Store result in AspNet Session.
            Get
                If (HttpContext.Current.Session("Result") Is Nothing) Then
                    Return 0D
                End If
                Return HttpContext.Current.Session("Result")
            End Get
            Set(ByVal value As Double)
                HttpContext.Current.Session("Result") = value
            End Set
        End Property

        Public Sub Clear() _
 Implements ICalculatorSession.Clear
            Result = 0D
        End Sub

        Public Sub AddTo(ByVal n As Double) _
Implements ICalculatorSession.AddTo
            Result += n
        End Sub

        Public Sub SubtractFrom(ByVal n As Double) _
Implements ICalculatorSession.SubtractFrom

            Result -= n
        End Sub

        Public Sub MultiplyBy(ByVal n As Double) _
Implements ICalculatorSession.MultiplyBy

            Result *= n
        End Sub

        Public Sub DivideBy(ByVal n As Double) _
Implements ICalculatorSession.DivideBy

            Result /= n
        End Sub

        Public Function Equal() As Double _
Implements ICalculatorSession.Equal

            Return Result
        End Function
    End Class

Remarques

lorsqu’il est appliqué à une classe d’implémentation de service, cet attribut indique si ce service requiert ou prend en charge le mode de compatibilité ASP.NET pour être activé pour le domaine d’application d’hébergement (AppDomain).

Les AppDomains qui hébergent les services WCF peuvent s’exécuter dans deux modes d’hébergement différents :

  • mode de transport mixte (par défaut) : dans ce mode, les services WCF ne participent pas au pipeline HTTP ASP.NET. Cela garantit qu’un service WCF se comporte de manière cohérente, indépendamment de l’environnement d’hébergement et du transport.

  • ASP.NET mode de compatibilité : dans ce mode, les services WCF participent au pipeline HTTP ASP.NET de manière similaire aux services ASMX. ASP.NET fonctionnalités telles que l’autorisation de fichier, l’autorisation et l’état de Session HTTP s’appliquent aux services WCF qui s’exécutent dans ce mode.

Le mode d'hébergement est contrôlé par l'indicateur de configuration d'application aspNetCompatibilityEnabled :

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

cet indicateur est false par défaut et par conséquent, les services WCF s’exécutent en mode de transport mixte, sauf si vous optez explicitement pour le mode de compatibilité ASP.NET.

pour plus d’informations sur le mode de compatibilité ASP.NET, consultez < serviceHostingEnvironment > .

Pour ce faire, utilisez la propriété RequirementsMode. lors de l’exécution, les applications peuvent détecter si le mode de compatibilité ASP.NET est activé en vérifiant la valeur de la propriété statique AspNetCompatibilityEnabled .

Constructeurs

AspNetCompatibilityRequirementsAttribute()

Initialise une nouvelle instance de la classe AspNetCompatibilityRequirementsAttribute.

Propriétés

RequirementsMode

obtient ou définit le niveau de compatibilité ASP.NET requis par le service.

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Ajoute des données personnalisées auxquelles les éléments de liaison peuvent accéder pour prendre en charge l’implémentation du contrat.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

vérifie que le type d’hébergement est cohérent avec les exigences de compatibilité de ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Valide le comportement de service.

S’applique à