<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" />