IContextManager.Enabled Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 eineInvalidOperationException
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 alwaysnull
.
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 |