Udostępnij za pośrednictwem


AspNetCompatibilityRequirementsAttribute Klasa

Definicja

Zastosowano do usługi Windows Communication Foundation (WCF), aby wskazać, czy można uruchomić usługę w ASP.NET kodzie zgodności.

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
Dziedziczenie
AspNetCompatibilityRequirementsAttribute
Atrybuty
Implementuje

Przykłady

Deweloperzy usług mogą upewnić się, że ich usługa jest uruchamiana tylko w trybie zgodności ASP.NET, ustawiając RequirementsMode właściwość na wartość na AspNetCompatibilityRequirementsAttribute Required , jak pokazano w poniższym przykładzie

[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

Uwagi

Po zastosowaniu do klasy implementacji usługi ten atrybut wskazuje, czy ta usługa wymaga włączenia trybu zgodności ASP.NET dla domeny aplikacji hostingu (AppDomain).

Domeny aplikacji hostowania usług WCF mogą działać w dwóch różnych trybach hostingu:

  • Tryb transportu mieszanego (ustawienie domyślne): w tym trybie usługi WCF nie uczestniczą w potoku http ASP.NET. Gwarantuje to, że usługa WCF zachowuje się spójnie, niezależnie od środowiska hostingu i transportu.

  • ASP.NET tryb zgodności: w tym trybie usługi WCF uczestniczą w potoku http ASP.NET w sposób podobny do usług ASMX. ASP.NET funkcje, takie jak autoryzacja plików, uwierzytelnianie url i stan sesji HTTP, mają zastosowanie do usług WCF działających w tym trybie.

Tryb hostingu jest kontrolowany przez flagę aspNetCompatibilityEnabledkonfiguracji na poziomie aplikacji .

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Ta flaga jest false domyślnie i dlatego usługi WCF są uruchamiane w trybie transportu mieszanego, chyba że jawnie zdecydujesz się na tryb zgodności ASP.NET.

Aby uzyskać więcej informacji na temat trybu zgodności ASP.NET, zobacz <serviceHostingEnvironment>.

RequirementsMode Użyj właściwości , aby to zrobić. W czasie wykonywania aplikacje mogą wykrywać, czy ASP.NET tryb zgodności jest włączony, sprawdzając wartość właściwości AspNetCompatibilityEnabledstatycznej .

Konstruktory

AspNetCompatibilityRequirementsAttribute()

Inicjuje nowe wystąpienie klasy AspNetCompatibilityRequirementsAttribute.

Właściwości

RequirementsMode

Pobiera lub ustawia poziom zgodności ASP.NET wymaganej przez usługę.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Dodaje dane niestandardowe, do których elementy powiązania mogą uzyskiwać dostęp do obsługi implementacji kontraktu.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Sprawdza, czy typ hostingu jest zgodny z wymaganiami dotyczącymi zgodności ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Weryfikuje zachowanie usługi.

Dotyczy