AspNetCompatibilityRequirementsAttribute Класс

Определение

Применяется к службе Windows Communication Foundation (WCF) для указания возможности запуска этой службы в коде совместимости ASP.NET.Applied to a Windows Communication Foundation (WCF) service to indicate whether that service can be run in ASP.NET compatibility code.

public ref class AspNetCompatibilityRequirementsAttribute sealed : Attribute, System::ServiceModel::Description::IServiceBehavior
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class AspNetCompatibilityRequirementsAttribute : Attribute, System.ServiceModel.Description.IServiceBehavior
type AspNetCompatibilityRequirementsAttribute = class
    inherit Attribute
    interface IServiceBehavior
Public NotInheritable Class AspNetCompatibilityRequirementsAttribute
Inherits Attribute
Implements IServiceBehavior
Наследование
AspNetCompatibilityRequirementsAttribute
Атрибуты
Реализации

Примеры

Разработчики служб могут убедиться, что их службы работают только в режиме совместимости ASP.NET, задав RequirementsMode для Required свойства значение, AspNetCompatibilityRequirementsAttribute как показано в следующем примере.Service developers can ensure that their service is only run in ASP.NET Compatibility Mode by setting the RequirementsMode property on the AspNetCompatibilityRequirementsAttribute to Required as shown in the following example

[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.NETASP.NET, необходимый для домена приложения размещения (AppDomain).When applied to a service implementation class, this attribute indicates whether this service requires or supports ASP.NETASP.NET compatibility mode to be enabled for the hosting application domain (AppDomain).

Домены AppDomain, в которых размещаются службы WCF, могут работать в двух разных режимах размещения:AppDomains hosting WCF services can run in two different hosting modes:

  • Смешанный режим транспорта (по умолчанию): В этом режиме службы WCF не участвуют в ASP.NETASP.NET конвейере HTTP.Mixed Transports Mode (Default): In this mode, WCF services do not participate in the ASP.NETASP.NET HTTP pipeline. Это гарантирует, что служба WCF работает постоянно, независимо от среды размещения и транспорта.This guarantees that a WCF service behaves consistently, independent of hosting environment and transport.

  • ASP.NETASP.NETРежим совместимости: В этом режиме службы WCF участвуют в ASP.NETASP.NET конвейере HTTP так же, как и службы ASMX.Compatibility Mode: In this mode, WCF services participate in the ASP.NETASP.NET HTTP pipeline in a manner similar to ASMX services. ASP.NETASP.NETтакие функции, как авторизация файла, Урлаусоризатион и состояние сеанса HTTP, применимы к службам WCF, выполняемым в этом режиме.features such as File Authorization, UrlAuthorization, and HTTP Session State are applicable to WCF services running in this mode.

Режим размещения управляется флагом конфигурации на уровне приложения aspNetCompatibilityEnabled.The hosting mode is controlled by the application-level configuration flag aspNetCompatibilityEnabled.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Этот флаг установлен false по умолчанию, и поэтому службы WCF выполняются в смешанном режиме транспорта, если только режим ASP.NETASP.NET совместимости явно не выбран.This flag is false by default and thus WCF services run in the Mixed Transports Mode unless you explicitly opt into the ASP.NETASP.NET compatibility mode.

Дополнительные сведения о режиме совместимости ASP.NET см. в <разделе>serviceHostingEnvironment.For more information about ASP.NET compatibility mode, see <serviceHostingEnvironment>.

Для этого воспользуйтесь свойством RequirementsMode.Use the RequirementsMode property to do this. В среде выполнения приложения могут определять, включен ли режим совместимости с ASP.NETASP.NET, путем проверки значения статического свойства AspNetCompatibilityEnabled.At runtime, applications can detect if ASP.NETASP.NET compatibility mode is enabled by checking the value of the static property AspNetCompatibilityEnabled.

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

AspNetCompatibilityRequirementsAttribute()

Инициализирует новый экземпляр класса AspNetCompatibilityRequirementsAttribute.Initializes a new instance of the AspNetCompatibilityRequirementsAttribute class.

Свойства

RequirementsMode

Возвращает или задает уровень совместимости с ASP.NETASP.NET, необходимый для службы.Gets or sets the level of ASP.NETASP.NET compatibility required by the service.

TypeId

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

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

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

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

Возвращает хэш-код данного экземпляра.Returns the hash code for this instance.

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

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

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

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

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

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

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

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

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

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

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

Добавляет пользовательские данные, к которым имеют доступ элементы привязки с целью поддержки реализации контракта.Adds custom data that the binding elements can access to support the implementation of the contract.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Проверяет, что тип размещения согласован с требованиями к совместимости с ASP.NETASP.NET.Checks that the type of hosting is consistent with the ASP.NETASP.NET compatibility requirements.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

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

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