AspNetCompatibilityRequirementsAttribute Класс

Определение

Применяется к службе Windows Communication Foundation (WCF), чтобы указать, может ли эта служба выполняться в коде совместимости 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
Наследование
AspNetCompatibilityRequirementsAttribute
Атрибуты
Реализации

Примеры

Разработчики служб могут убедиться, что их служба выполняется только в режиме совместимости ASP.NET, задав RequirementsMode для свойства значение AspNetCompatibilityRequirementsAttributeRequired , как показано в следующем примере.

[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

Комментарии

При применении к классу реализации службы этот атрибут указывает, требуется ли эта служба или поддерживает режим совместимости ASP.NET для домена приложения размещения (AppDomain).

ПриложенияDomains, на котором размещаются службы WCF, могут выполняться в двух разных режимах размещения:

  • Режим смешанного транспорта (по умолчанию): в этом режиме службы WCF не участвуют в конвейере ASP.NET HTTP. Это гарантирует, что служба WCF работает согласованно, независимо от среды размещения и транспорта.

  • ASP.NET режим совместимости. В этом режиме службы WCF участвуют в конвейере ASP.NET HTTP таким образом, как службы ASMX. ASP.NET функции, такие как авторизация файлов, URLAuthorization и состояние сеанса HTTP, применимы к службам WCF, работающим в этом режиме.

Режим размещения управляется флагом aspNetCompatibilityEnabledконфигурации на уровне приложения.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Этот флаг по умолчанию и таким образом службы WCF выполняются false в режиме смешанного транспорта, если вы явно не выберете режим совместимости ASP.NET.

Дополнительные сведения о режиме совместимости ASP.NET см. в разделе< serviceHostingEnvironment>.

RequirementsMode Используйте это свойство. Во время выполнения приложения могут определить, включен ли режим совместимости ASP.NET, проверив значение статического свойства AspNetCompatibilityEnabled.

Конструкторы

Имя Описание
AspNetCompatibilityRequirementsAttribute()

Инициализирует новый экземпляр класса AspNetCompatibilityRequirementsAttribute.

Свойства

Имя Описание
RequirementsMode

Возвращает или задает уровень совместимости ASP.NET, необходимой службой.

TypeId

При реализации в производном классе получает уникальный идентификатор для этого Attribute.

(Унаследовано от Attribute)

Методы

Имя Описание
Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код для этого экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Добавляет пользовательские данные, к которым могут получить доступ элементы привязки для поддержки реализации контракта.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Проверяет, соответствует ли тип размещения требованиям совместимости ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Проверяет поведение службы.

Применяется к