AspNetCompatibilityRequirementsAttribute Classe

Definizione

Applicato a un servizio Windows Communication Foundation (WCF) per indicare se tale servizio può essere eseguito all'interno di codice di compatibilità 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
Ereditarietà
AspNetCompatibilityRequirementsAttribute
Attributi
Implementazioni

Esempio

Gli sviluppatori di servizi possono assicurarsi che il servizio venga eseguito solo in modalità di compatibilità ASP.NET impostando la RequirementsMode proprietà su su AspNetCompatibilityRequirementsAttribute Required come illustrato nell'esempio seguente

[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

Commenti

Se applicato a una classe di implementazione del servizio, questo attributo indica se questo servizio richiede o supporta ASP.NET modalità di compatibilità da abilitare per il dominio applicazione di hosting (AppDomain).

AppDomains che ospita i servizi WCF può essere eseguito in due modalità di hosting diverse:

  • Modalità trasporto misto (impostazione predefinita): in questa modalità, i servizi WCF non partecipano alla pipeline HTTP ASP.NET. Ciò garantisce che un servizio WCF si comporti in modo coerente, indipendentemente dall'ambiente di hosting e dal trasporto.

  • ASP.NET modalità di compatibilità: in questa modalità, i servizi WCF partecipano alla pipeline HTTP ASP.NET in modo simile ai servizi ASMX. ASP.NET funzionalità come Autorizzazione file, UrlAuthorization e Stato sessione HTTP sono applicabili ai servizi WCF in esecuzione in questa modalità.

La modalità host è controllata dal flag di configurazione a livello di applicazione aspNetCompatibilityEnabled.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Questo flag è false per impostazione predefinita e pertanto i servizi WCF vengono eseguiti in modalità trasporto misto, a meno che non si acconsenta esplicitamente alla modalità di compatibilità ASP.NET.

Per altre informazioni sulla modalità di compatibilità ASP.NET, vedere <serviceHostingEnvironment>.

Utilizzare la proprietà RequirementsMode per eseguire quanto segue. In fase di esecuzione, le applicazioni possono rilevare se ASP.NET modalità di compatibilità è abilitata controllando il valore della proprietà AspNetCompatibilityEnabledstatica .

Costruttori

AspNetCompatibilityRequirementsAttribute()

Inizializza una nuova istanza della classe AspNetCompatibilityRequirementsAttribute.

Proprietà

RequirementsMode

Ottiene o imposta il livello di compatibilità ASP.NET richiesto dal servizio.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Aggiunge dati personalizzati a cui gli elementi di associazione possono accedere per supportare l'implementazione del contratto.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Verifica che il tipo di hosting sia coerente con i requisiti di compatibilità ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Convalida il comportamento del servizio.

Si applica a