<webMessageEncoding>
Habilita XML de texto simples, codificações mensagem JSON (JavaScript Object Notation) e conteúdo binário "bruto" para ser lido e gravado quando usado em uma associação WCF (Windows Communication Foundation).
<configuração>
<system.serviceModel>
<bindings>
<customBinding>
<binding>
<webMessageEncoding>
Syntax
<webMessageEncoding maxReadPoolSize="Integer"
maxWritePoolSize="Integer"
writeEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Atributos
Atributo | Descrição |
---|---|
maxReadPoolSize |
A quantidade de mensagens que podem ser lidas simultaneamente sem alocar novos leitores. Tamanhos de pool maiores tornam o sistema mais tolerante a picos de atividade ao custo de um conjunto de trabalho maior. O padrão é 64 leitores para cada um dos codificadores internos (texto, JSON e "bruto"). Aumentar esse número aumentará o consumo de memória, mas preparará o codificador para lidar com as intermitências repentinas de mensagens de entrada porque ele poderá usar os leitores do pool já criados, em vez de criar novos. |
maxWritePoolSize |
A quantidade de mensagens que podem ser enviadas simultaneamente sem alocar novos escritores. Tamanhos de pool maiores tornam o sistema mais tolerante a picos de atividade ao custo de um conjunto de trabalho maior. O padrão são 16 escritores para cada um dos codificadores internos (texto, JSON e "bruto"). Aumentar esse número aumentará o consumo de memória, mas preparará o codificador para lidar com as intermitências repentinas de mensagens de saída porque ele poderá usar os escritores do pool já criados, em vez de criar novos. |
writeEncoding |
Especifica a codificação de conjunto de caracteres a ser usada para emitir mensagens na associação. Os valores válidos são: − UnicodeFffeTextEncoding: codificação Unicode Big Endian. − Utf16TextEncoding: codificação Unicode. − Utf8TextEncoding: codificação de 8 bits. O padrão é Utf8TextEncoding. Esse atributo é do tipo Encoding. |
Elementos filho
Elemento | Descrição |
---|---|
<readerQuotas> | Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas pelos pontos de extremidade configurados com essa associação. Esse elemento é do tipo XmlDictionaryReaderQuotasElement. |
Elementos pai
Elemento | Descrição |
---|---|
<binding> | Define todas as funcionalidades de associação da associação personalizada. |
Comentários
Codificação é o processo de transformar uma mensagem em uma sequência de bytes. A decodificação é o processo inverso. Esses processos exigem a especificação de uma codificação de caracteres.
O elemento webMessageEncoding
funciona delegando a uma série de codificadores internos para manipular as codificações JSON e XML de texto simples e dados binários "brutos". Essa delegação é feita por um codificador de mensagem composta.
Esse elemento de associação e o codificador de composição são utilizados para controlar a codificação em cenários que não usam mensagens SOAP utilizadas pelo elemento webHttpBinding
. Esses cenários incluem POX (Plain Old XML), REST (Transferência de Estado Representacional), RSS (Really Simple Syndication) e sindicalização Atom, e AJAX (Asynchronous JavaScript and XML). O codificador de mensagem composta não dá suporte a SOAP ou WS-Addressing.
O elemento de associação pode ser configurado com uma codificação de caracteres de gravação usando o atributo writeEncoding
. O valor Encoding fornecido especifica o comportamento na gravação para os casos JSON e XML Textual. Na leitura, todas as codificações de mensagem e codificações de texto válidas serão reconhecidas.
maxReadPoolSize
e maxWritePoolSize
também poderão ser utilizados para definir o número máximo de leitores e escritores que serão alocados, respectivamente. Por padrão, são alocados 64 leitores e 16 escritores.
As restrições de complexidade padrão também são definidas usando o elemento <readerQuotas> para proteger contra uma classe de ataques DoS (negação de serviço) que tentam usar a complexidade da mensagem para vincular os recursos de processamento de ponto de extremidade.
Exemplo
<webMessageEncoding maxReadPoolSize="256"
maxWritePoolSize="128"
messageVersion="None"
textEncoding="utf-8" />