AspNetCompatibilityRequirementsAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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. |