AspNetCompatibilityRequirementsAttribute Klass

Definition

Tillämpas på en Windows Communication Foundation-tjänst (WCF) för att ange om tjänsten kan köras i ASP.NET kompatibilitetskod.

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
Arv
AspNetCompatibilityRequirementsAttribute
Attribut
Implementeringar

Exempel

Tjänstutvecklare kan se till att tjänsten endast körs i ASP.NET kompatibilitetsläge genom att ange egenskapen RequirementsMode på egenskapen AspNetCompatibilityRequirementsAttribute till Required enligt följande exempel

[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

Kommentarer

När det tillämpas på en tjänstimplementeringsklass anger det här attributet om den här tjänsten kräver eller stöder ASP.NET kompatibilitetsläge som ska aktiveras för värdprogramdomänen (AppDomain).

AppDomains som är värd för WCF-tjänster kan köras i två olika värdlägen:

  • Blandat transportläge (standard): I det här läget deltar inte WCF-tjänster i ASP.NET HTTP-pipeline. Detta garanterar att en WCF-tjänst fungerar konsekvent, oberoende av värdmiljö och transport.

  • ASP.NET Kompatibilitetsläge: I det här läget deltar WCF-tjänster i ASP.NET HTTP-pipeline på ett sätt som liknar ASMX-tjänster. ASP.NET funktioner som Filauktorisering, UrlAuthorization och HTTP-sessionstillstånd gäller för WCF-tjänster som körs i det här läget.

Värdläget styrs av konfigurationsflaggan aspNetCompatibilityEnabledpå programnivå .

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Den här flaggan är false som standard och därför körs WCF-tjänster i läget Blandade transporter såvida du inte uttryckligen väljer ASP.NET kompatibilitetsläge.

Mer information om ASP.NET kompatibilitetsläge finns i <serviceHostingEnvironment>.

Använd egenskapen RequirementsMode för att göra detta. Vid körning kan program identifiera om ASP.NET kompatibilitetsläge är aktiverat genom att kontrollera värdet för den statiska egenskapen AspNetCompatibilityEnabled.

Konstruktorer

Name Description
AspNetCompatibilityRequirementsAttribute()

Initierar en ny instans av AspNetCompatibilityRequirementsAttribute klassen.

Egenskaper

Name Description
RequirementsMode

Hämtar eller anger nivån för ASP.NET kompatibilitet som krävs av tjänsten.

TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Lägger till anpassade data som bindningselementen kan komma åt för att stödja implementeringen av kontraktet.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Kontrollerar att typen av värd är konsekvent med ASP.NET kompatibilitetskrav.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Verifierar tjänstbeteendet.

Gäller för