Partilhar via


IContextManager.Enabled Propriedade

Definição

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ça InvalidOperationException.

  • 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 é sempre null.

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

Aplica-se a