IContextManager.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

屬性值

如果已啟用內容,則為 true,否則為 false

備註

啟用內容管理時,內容通道會在其存留期間快取內容。 您可以在 IContextManager 通道屬性上呼叫 GetContext 方法,透過此通道屬性來從通道擷取內容。 您也可以呼叫通道屬性上的 SetContext 方法,在開啟通道之前,使用內容預先初始化通道。 一旦通道透過內容初始化完畢,就無法重設。

下列為此模式中的不變量:

  • 如果在通道開啟後呼叫 SetContext,一定會擲回 InvalidOperationException

  • 嘗試在傳出的訊息中使用 ContextMessageProperty 來傳送內容,一定會擲回 InvalidOperationException

  • 在通道已經使用內容初始化之後,如果從伺服器接收包含內容的訊息,就會擲回 ProtocolException。 請注意,如果開啟的通道未明確設定內容,您就能從伺服器接收初始內容。

  • 傳入訊息上的 ContextMessageProperty 一律為 null

在內容管理未啟用情況下,內容通道不會管理內容。 應用程式需負責透過 ContextMessageProperty 擷取、管理和套用內容。 嘗試透過 GetContext 通道屬性呼叫 SetContextIContextManager,一定會產生 InvalidOperationException

除了內容 HTTP Cookie 之外,所有 HTTP Cookie 都在通道層級處理。 內容 HTTP Cookie 在應用程式層級管理。 當共用通道以便與 ContextMessageProperty 所定的不同目標執行個體進行通訊時,這個做法可能會產生非預期的結果。 下表說明當 Enabled 設為 truefalse 時,HTTP Cookie 受影響的方式。

繫結 IContextManager.Enabled 值 內容 HTTP Cookie 範圍 其他 HTTP Cookies 範圍
BasicHttpBinding n/a ChannelFactory ChannelFactory
BasicHttpContextBinding true 管道 管道
BasicHttpContextBinding false 對每個訊息 (由應用程式明確管理) 管道

適用於