Compartilhar via


AspNetCompatibilityRequirementsAttribute Classe

Definição

Aplicado a um serviço WCF (Windows Communication Foundation) para indicar se esse serviço pode ser executado no código de compatibilidade 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
Herança
AspNetCompatibilityRequirementsAttribute
Atributos
Implementações

Exemplos

Os desenvolvedores de serviços podem garantir que seu serviço seja executado apenas no modo de compatibilidade ASP.NET definindo a RequirementsMode propriedade como AspNetCompatibilityRequirementsAttribute Required mostrada no exemplo a seguir

[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

Comentários

Quando aplicado a uma classe de implementação de serviço, esse atributo indica se esse serviço requer ou dá suporte ASP.NET modo de compatibilidade a ser habilitado para o domínio do aplicativo de hospedagem (AppDomain).

Os serviços WCF de hospedagem do AppDomains podem ser executados em dois modos de hospedagem diferentes:

  • Modo de Transportes Mistos (Padrão): nesse modo, os serviços do WCF não participam do pipeline HTTP ASP.NET. Isso garante que um serviço WCF se comporte consistentemente, independentemente do ambiente de hospedagem e do transporte.

  • ASP.NET Modo de Compatibilidade: nesse modo, os serviços do WCF participam do pipeline HTTP ASP.NET de maneira semelhante aos serviços ASMX. ASP.NET recursos como Autorização de Arquivo, UrlAuthorization e Estado da Sessão HTTP são aplicáveis aos serviços do WCF em execução nesse modo.

O modo de hospedagem é controlado pelo sinalizador aspNetCompatibilityEnabledde configuração no nível do aplicativo.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Esse sinalizador é false por padrão e, portanto, os serviços WCF são executados no Modo de Transportes Mistos, a menos que você opte explicitamente pelo modo de compatibilidade ASP.NET.

Para obter mais informações sobre ASP.NET modo de compatibilidade, consulte <serviceHostingEnvironment>.

Use a RequirementsMode propriedade para fazer isso. Em runtime, os aplicativos podem detectar se ASP.NET modo de compatibilidade está habilitado verificando o valor da propriedade AspNetCompatibilityEnabledestática.

Construtores

AspNetCompatibilityRequirementsAttribute()

Inicializa uma nova instância da classe AspNetCompatibilityRequirementsAttribute.

Propriedades

RequirementsMode

Obtém ou define o nível de compatibilidade ASP.NET exigido pelo serviço.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

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

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

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

Fornece acesso a propriedades e métodos expostos por um objeto.

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

Adiciona dados personalizados que os elementos de associação podem acessar para dar suporte à implementação do contrato.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Verifica se o tipo de hospedagem é consistente com os requisitos de compatibilidade ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Valida o comportamento do serviço.

Aplica-se a