<webMessageEncoding>

Permite que as codificações de mensagens XML, JavaScript Object Notation (JSON) de texto simples e conteúdo binário "não processado" sejam lidas e escritas quando utilizadas num enlace do Windows Communication Foundation (WCF).

<configuração>
  <system.serviceModel>
    <enlaces>
      <customBinding>
        <enlace>
          <webMessageEncoding>

Syntax

<webMessageEncoding maxReadPoolSize="Integer"
                    maxWritePoolSize="Integer"
                    writeEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />

Atributos e Elementos

As secções seguintes descrevem atributos, elementos subordinados e elementos principais.

Atributos

Atributo Descrição
maxReadPoolSize A quantidade de mensagens que podem ser lidas em simultâneo sem alocar novos leitores. Os tamanhos de conjunto maiores tornam o sistema mais tolerante a picos de atividade ao custo de um conjunto de trabalho maior. A predefinição é 64 leitores para cada um dos codificadores internos (texto, JSON e "raw").

Aumentar este número aumenta o consumo de memória, mas prepara o codificador para lidar com rajadas repentinas de mensagens recebidas porque é capaz de utilizar leitores do conjunto que já estão criados em vez de criar novas.
maxWritePoolSize A quantidade de mensagens que podem ser enviadas em simultâneo sem alocar novos escritores. Os tamanhos de conjunto maiores tornam o sistema mais tolerante a picos de atividade ao custo de um conjunto de trabalho maior. A predefinição é 16 escritores para cada um dos codificadores internos (texto, JSON e "raw").

Aumentar este número aumenta o consumo de memória, mas prepara o codificador para lidar com rajadas repentinas de mensagens enviadas porque é capaz de utilizar escritores do conjunto que já estão criados em vez de criar novas.
writeEncoding Especifica a codificação do conjunto de carateres a utilizar para emitir mensagens no enlace. Os valores válidos são:

- UnicodeFffeTextEncoding: codificação Unicode Big Endian.
- Utf16TextEncoding: codificação Unicode.
- Utf8TextEncoding: codificação de 8 bits.

A predefinição é Utf8TextEncoding. Este atributo é do tipo Encoding.

Elementos Subordinados

Elemento Descrição
<readerQuotas> Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos finais configurados com este enlace. Este elemento é do tipo XmlDictionaryReaderQuotasElement.

Elementos Principais

Elemento Descrição
<enlace> Define todas as capacidades de enlace do enlace personalizado.

Observações

A codificação é o processo de transformação de uma mensagem numa sequência de bytes. A descodificação é o processo inverso. Estes processos requerem a especificação de uma codificação de carateres.

O webMessageEncoding elemento funciona delegando a uma série de codificadores internos para processar as codificações XML e JSON de texto simples e dados binários "não processados". Esta delegação é feita por um codificador de mensagens compostas.

Este elemento de enlace e o respetivo codificador composto são utilizados para controlar a codificação em cenários que não utilizam mensagens SOAP utilizadas webHttpBinding pelo elemento. Estes cenários incluem "Plain Old XML" (POX), Representational State Transfer (REST), Really Simple Syndication (RSS) e Atom syndication e Asynchronous JavaScript e XML (AJAX). O codificador de mensagens compostas não suporta SOAP ou WS-Addressing.

O elemento de enlace pode ser configurado com uma codificação de carateres de escrita com o writeEncoding atributo . O valor fornecido Encoding especifica o comportamento na escrita para os casos JSON e Textual XML. Na leitura, qualquer codificação de mensagens válida e codificação de texto é compreendida.

maxReadPoolSize e maxWritePoolSize também pode ser utilizado para definir o número máximo de leitores e escritores a atribuir, respetivamente. Por predefinição, são atribuídos 64 leitores e 16 escritores.

As restrições de complexidade predefinidas também são definidas com o <elemento readerQuotas> para proteger contra uma classe de ataques denial of service (DOS) que tentam utilizar a complexidade das mensagens para ligar recursos de processamento de pontos finais.

Exemplo

<webMessageEncoding maxReadPoolSize="256"
                    maxWritePoolSize="128"
                    messageVersion="None"
                    textEncoding="utf-8" />

Veja também