AspNetCompatibilityRequirementsAttribute Classe
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
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
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 .
Asp |
Inizializza una nuova istanza della classe AspNetCompatibilityRequirementsAttribute. |
Requirements |
Ottiene o imposta il livello di compatibilità ASP.NET richiesto dal servizio. |
Type |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
Get |
Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
Get |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
Is |
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) |
Memberwise |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
To |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
_Attribute. |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute. |
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. |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
_Attribute. |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |
IService |
Aggiunge dati personalizzati a cui gli elementi di associazione possono accedere per supportare l'implementazione del contratto. |
IService |
Verifica che il tipo di hosting sia coerente con i requisiti di compatibilità ASP.NET. |
IService |
Convalida il comportamento del servizio. |
Prodotto | Versioni |
---|---|
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |