AspNetCompatibilityRequirementsAttribute Clase

Definición

Aplicado a un servicio Windows Communication Foundation (WCF) para indicar si ese servicio se puede ejecutar en código de compatibilidad de 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
Herencia
AspNetCompatibilityRequirementsAttribute
Atributos
Implementaciones

Ejemplos

Los desarrolladores de servicios pueden asegurarse de que su servicio solo se ejecuta en ASP.NET modo de compatibilidad estableciendo la RequirementsMode propiedad en Required AspNetCompatibilityRequirementsAttribute como se muestra en el ejemplo siguiente.

[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

Comentarios

Cuando se aplica a una clase de implementación de servicio, este atributo indica si este servicio requiere o admite ASP.NET modo de compatibilidad que se habilitará para el dominio de aplicación de hospedaje (AppDomain).

Los appDomains que hospedan servicios WCF se pueden ejecutar en dos modos de hospedaje diferentes:

  • Modo de transporte mixto (valor predeterminado): en este modo, los servicios WCF no participan en la canalización HTTP de ASP.NET. Esto garantiza que un servicio WCF se comporta de forma coherente, independiente del entorno de hospedaje y el transporte.

  • ASP.NET modo de compatibilidad: en este modo, los servicios WCF participan en la canalización HTTP de ASP.NET de forma similar a los servicios ASMX. ASP.NET características como Autorización de archivos, UrlAuthorization y Estado de sesión HTTP se aplican a los servicios WCF que se ejecutan en este modo.

La marca de configuración en el nivel de la aplicación aspNetCompatibilityEnabled controla el modo de hospedaje.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Esta marca es false de forma predeterminada y, por tanto, los servicios WCF se ejecutan en el modo de transporte mixto, a menos que opte explícitamente por el modo de compatibilidad de ASP.NET.

Para obtener más información sobre ASP.NET modo de compatibilidad, consulte <serviceHostingEnvironment>.

Utilice la propiedad RequirementsMode para hacerlo. En tiempo de ejecución, las aplicaciones pueden detectar si ASP.NET modo de compatibilidad está habilitado comprobando el valor de la propiedad AspNetCompatibilityEnabledestática .

Constructores

AspNetCompatibilityRequirementsAttribute()

Inicializa una nueva instancia de la clase AspNetCompatibilityRequirementsAttribute.

Propiedades

RequirementsMode

Obtiene o establece el nivel de ASP.NET compatibilidad requerida por el servicio.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Agrega los datos personalizados a los que pueden tener acceso los elementos de enlace para admitir la implementación del contrato.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Comprueba que el tipo de hospedaje es coherente con los requisitos de compatibilidad de ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Valida el comportamiento del servicio.

Se aplica a