IContextManager.Enabled Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica se o gerenciamento de contexto está habilitado.
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
Valor da propriedade
true
se o contexto estiver habilitado; caso contrário, false
.
Comentários
Quando o gerenciamento de contexto é habilitado, o canal de contexto armazena em cache o contexto em seu tempo de vida. O contexto pode ser recuperado do canal por meio da propriedade channel IContextManager
chamando GetContext o método nele. O canal também pode ser pré-inicializado com contexto antes de ser aberto chamando o SetContext método na propriedade channel. Depois que o canal é inicializado com contexto, ele não pode ser redefinido.
Veja a seguir invariáveis nesse modo:
Qualquer chamada para SetContext depois que o canal é aberto lança um
InvalidOperationException
.Qualquer tentativa de enviar contexto por meio do
ContextMessageProperty
em uma mensagem de saída lançaInvalidOperationException
.Se uma mensagem for recebida do servidor com contexto, quando o canal já estiver inicializado com um contexto, uma
ProtocolException
será gerada. Observe que você poderá receber o contexto inicial de um servidor se o canal for aberto sem definir explicitamente o contexto.O
ContextMessageProperty
em uma mensagem de entrada é semprenull
.
Quando o gerenciamento de contexto não está habilitado, o canal de contexto não gerencia o contexto. É responsabilidade do aplicativo recuperar, gerenciar e aplicar contexto por meio do ContextMessageProperty
. Qualquer tentativa de chamar GetContext ou SetContext usar por meio da propriedade de IContextManager
canal resulta em InvalidOperationException
.
Todos os cookies HTTP, exceto os cookies HTTP de contexto, são manipulados no nível do canal. Os cookies HTTP de contexto são gerenciados no nível do aplicativo. Isso pode ter consequências inesperadas quando os canais são compartilhados para conversar com instâncias diferentes direcionadas por ContextMessageProperty. A tabela a seguir mostra como os cookies HTTP são afetados quando Enabled é definido como true
ou false
.
Associação | Valor IContextManager.Enabled | Escopo de cookie HTTP de contexto | Outros escopos de cookies HTTP |
---|---|---|---|
BasicHttpBinding | N/D | Channelfactory | Channelfactory |
BasicHttpContextBinding | true | Canal | Canal |
BasicHttpContextBinding | false | Para cada mensagem (gerenciada explicitamente pelo aplicativo) | Canal |