IContextManager.Enabled Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets a value that indicates whether the context management is enabled.
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
Property Value
true
if the context is enabled; otherwise, false
.
Remarks
When context management is enabled the context channel caches the context in its lifetime. Context can be retrieved from the channel through the IContextManager
channel property by calling GetContext method on it. The channel can also be pre-initialized with context before being opened by calling the SetContext method on the channel property. Once the channel is initialized with context it cannot be reset.
The following are invariants in this mode:
Any call to SetContext after the channel is open throws an
InvalidOperationException
.Any attempt to send context through the
ContextMessageProperty
in an outgoing message throwsInvalidOperationException
.If a message is received from the server with context, when the channel is already initialized with a context a
ProtocolException
is thrown. Note that you can receive initial context from a server if the channel is opened without explicitly setting the context.The
ContextMessageProperty
on an incoming message is alwaysnull
.
When context management is not enabled, the context channel does not manage context. It is the application's responsibility to retrieve, manage and apply context through the ContextMessageProperty
. Any attempt to call GetContext or SetContext using through the IContextManager
channel property results in InvalidOperationException
.
All HTTP cookies, except for context HTTP cookies, are handled at the channel level. Context HTTP cookies are managed at the application level. This can have unexpected consequences when channels are shared to talk to different instances targeted by ContextMessageProperty. The following table shows how HTTP cookies are affected when Enabled is set to either true
or false
.
Binding | IContextManager.Enabled Value | Context HTTP Cookie Scope | Other HTTP Cookies Scope |
---|---|---|---|
BasicHttpBinding | n/a | ChannelFactory | ChannelFactory |
BasicHttpContextBinding | true | Channel | Channel |
BasicHttpContextBinding | false | For each message (explicitly managed by application) | Channel |