Condividi tramite


IContextManager.Enabled Proprietà

Definizione

Ottiene o imposta un valore che indica se la gestione del contesto è abilitata.

public:
 property bool Enabled { bool get(); void set(bool value); };
public bool Enabled { get; set; }
member this.Enabled : bool with get, set
Public Property Enabled As Boolean

Valore della proprietà

È true se il contesto è abilitato. In caso contrario è false.

Commenti

Quando la gestione del contesto è abilitata, il canale del contesto memorizza nella cache il contesto all'interno della durata corrispondente. Il contesto può essere recuperato dal canale tramite la proprietà del canale IContextManager chiamando il metodo GetContext su di essa. Il canale può inoltre essere preinizializzato con un contesto specifico prima di venire aperto chiamando il metodo SetContext sulla proprietà del canale. Dopo essere stato inizializzato con il contesto, il canale non può essere reimpostato.

Di seguito vengono illustrate le invarianti in questa modalità:

  • Qualsiasi chiamata a SetContext dopo l'apertura del canale genera un'eccezione InvalidOperationException.

  • Qualsiasi tentativo di inviare il contesto tramite ContextMessageProperty in un messaggio in uscita genera un'eccezione InvalidOperationException.

  • Se un messaggio viene ricevuto dal server con il contesto, quando il canale è già stato inizializzato con un contesto, viene generata un'eccezione ProtocolException. Si noti che è possibile ricevere il contesto iniziale da un server se il canale viene aperto senza impostazione esplicita del contesto.

  • ContextMessageProperty su un messaggio in arrivo è sempre null.

Quando la gestione del contesto non è abilitata, il canale del contesto non gestisce il contesto. È responsabilità dell'applicazione recuperare, gestire e applicare il contesto tramite ContextMessageProperty. Qualsiasi tentativo di chiamare GetContext o SetContext tramite la proprietà del canale IContextManager genera un'eccezione InvalidOperationException.

Tutti i cookie HTTP, ad eccezione dei cookie HTTP del contesto, sono gestiti a livello di canale. I cookie HTTP del contesto sono gestiti a livello di applicazione. Questo potrebbe determinare comportare conseguenze impreviste quando i canali sono condivisi per comunicare con istanze diverse indirizzate da ContextMessageProperty. Nella tabella seguente viene mostrato l'effetto sui cookie HTTP quando Enabled è impostato su true o false.

Binding Valore IContextManager.Enabled Ambito dei cookie HTTP del contesto Ambito di altri cookie HTTP
BasicHttpBinding n/d ChannelFactory ChannelFactory
BasicHttpContextBinding true Canale Canale
BasicHttpContextBinding false Per ogni messaggio (gestito in modo esplicito dall'applicazione) Canale

Si applica a