Freigeben über


IContextManager.Enabled Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die Kontextverwaltung aktiviert wurde, oder legt diesen fest.

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

Eigenschaftswert

true, wenn der Kontext aktiviert ist, andernfalls false.

Hinweise

Bei aktivierter Kontextverwaltung nimmt der Kontextkanal eine Zwischenspeicherung des Kontexts in seiner Lebensdauer vor. Der Kontext kann über den Kanaleigenschaft IContextManager durch einen Aufruf der GetContext-Methode vom Kanal abgerufen werden. Der Kanal kann auch vor dem Öffnen vorab mit einem Kontext initialisiert werden, indem die SetContext-Methode für die Kanaleigenschaft aufgerufen wird. Sobald der Kanal mit einem Kontext initialisiert wurde, kann er nicht mehr zurückgesetzt werden.

Nachfolgend sind Invarianten in diesem Modus aufgeführt:

  • Durch jeden Aufruf von SetContext nach dem Öffnen des Kanals wird eine InvalidOperationException ausgelöst.

  • Jeder Versuch, Kontext mithilfe der ContextMessageProperty in einer ausgehenden Nachricht zu senden, löst eine InvalidOperationException aus.

  • Wird vom Server eine Nachricht mit Kontext empfangen, wenn der Kanal bereits mit einem Kontext intialisiert wurde, wird eine ProtocolException ausgelöst. Anfangskontext kann von einem Server empfangen werden, falls der Kanal ohne ausdrückliches Festlegen des Kontexts geöffnet wird.

  • Die ContextMessageProperty einer eingehenden Nachricht ist immer always null.

Wenn Kontextverwaltung nicht aktiviert wird, wird der Kontext vom Kontextkanal nicht verwaltet. Es ist Aufgabe der Anwendung, den Kontext mithilfe von ContextMessageProperty abzurufen, zu verwalten und zu übernehmen. Jeder Versuch, GetContext oder SetContext über die IContextManager-Channeleigenschaft aufzurufen, führt zu InvalidOperationException.

Mit Ausnahme von Kontext-HTTP-Cookies werden alle HTTP-Cookies auf Kanalebene behandelt. Kontext-HTTP-Cookies werden auf Anwendungsebene verwaltet. Dies kann unerwartete Auswirkungen haben, wenn Kanäle für die Kommunikation mit verschiedenen Zielinstanzen von ContextMessageProperty freigegeben werden. In der folgenden Tabelle sind die Auswirkungen auf HTTP-Cookies aufgeführt, wenn Enabled entweder auf true oder auf false festgelegt ist.

Bindung IContextManager.Enabled-Wert Bereich für Kontext-HTTP-Cookies Bereich für andere HTTP-Cookies
BasicHttpBinding ChannelFactory ChannelFactory
BasicHttpContextBinding true Kanal Kanal
BasicHttpContextBinding false Für jede (explizit von der Anwendung verwaltete) Nachricht Kanal

Gilt für: