Partager via


<webMessageEncoding>

Permet de lire et d'écrire du contenu XML en texte brut, les encodages de message JSON (JavaScript Objet Notation) et du contenu binaire brut dans une liaison Windows Communication Foundation (WCF).

Hiérarchie de schéma

<system.serviceModel>
  <bindings>
    <customBinding>
      <binding>
        <webMessageEncoding>

Syntaxe

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description

maxReadPoolSize

Quantité maximale de messages pouvant être consultés simultanément sans allouer de nouveaux lecteurs. Des pools plus volumineux permettent au système d'être plus tolérant aux pics d'activité au prix d'une plage de travail plus volumineuse. La valeur par défaut est de 64 lecteurs par encodeur interne (texte, JSON, et « brut »).

L'augmentation de ce nombre entraîne celle de la consommation de mémoire, mais prépare l'encodeur afin de traiter les rafales soudaines de messages entrants. En effet, il peut ainsi utiliser les lecteurs existants du pool au lieu d'en créer.

maxWritePoolSize

Quantité maximale de messages pouvant être envoyés simultanément sans allouer de nouveaux enregistreurs. Des pools plus volumineux permettent au système d'être plus tolérant aux pics d'activité au prix d'une plage de travail plus volumineuse. La valeur par défaut est de 16 enregistreurs par encodeur interne (texte, JSON, et « brut »).

L'augmentation de ce nombre entraîne celle de la consommation de mémoire, mais prépare l'encodeur afin de traiter les rafales soudaines de messages sortants. En effet, il peut ainsi utiliser les writers existants du pool au lieu d'en créer.

writeEncoding

Spécifie l'encodage de jeu de caractères à utiliser pour l'émission de messages sur la liaison. Les valeurs valides sont les suivantes :

  • UnicodeFffeTextEncoding : encodage Unicode Big Endian.

  • Utf16TextEncoding : encodage Unicode.

  • Utf8TextEncoding : encodage 8 bits.

La valeur par défaut est Utf8TextEncoding. Cet attribut est de type Encoding.

Éléments enfants

Élément Description

<readerQuotas>

Définit les contraintes de la complexité des messages SOAP qui peuvent être traités par les points de terminaison configurés avec cette liaison. Cet élément est de type XmlDictionaryReaderQuotasElement.

Éléments parents

Élément Description

<binding>

Définit toutes les fonctions de liaison de la liaison personnalisée.

Notes

L'encodage consiste en la transformation d'un message en une séquence d'octets. Le décodage est le processus inverse. Ces processus nécessitent l'encodage de caractères à titre de spécification.

L'élément webMessageEncoding fonctionne par délégation à une série d'encodeurs internes afin de gérer les données XML de texte brut, les encodages JSON et les données binaires brutes. Cette délégation a lieu par le biais d'un encodeur de message composite.

Cet élément de liaison et son encodeur composite sont utilisés pour contrôler l'encodage dans des scénarios qui n'utilisent pas la messagerie SOAP utilisée par l'élément webHttpBinding. Ces scénarios incluent les protocoles POX (Plain Old XML) et REST (Representational State Transfer), la syndication RSS (Really Simple Syndication) et Atom, ainsi que le protocole AJAX (Asynchronous JavaScript and XML). L'encodeur de messages composite ne prend pas en charge SOAP ni WS-Addressing.

L'élément de liaison peut être configuré avec un encodage de caractères d'écriture à l'aide de l'attribut writeEncoding. La valeur Encoding fournie spécifie le comportement sur l'écriture pour les cas JSON et XML textuels. Lors de la lecture, tous les encodages de texte et de message valides sont maîtrisés.

maxReadPoolSize et maxWritePoolSize peuvent également être utilisés pour définir respectivement le nombre maximal de lecteurs et de writers à allouer. Par défaut, 64 lecteurs et 16 writers sont alloués.

Les contraintes de complexité par défaut sont également définies à l'aide de l'élément <readerQuotas> pour protéger l'application contre les attaques par déni de service (DoS) qui tentent d'exploiter la complexité de message pour bloquer les ressources allouées au traitement des points de terminaison.

Exemple

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

Voir aussi

Référence

<customBinding>
WebMessageEncodingElement
CustomBinding
MessageEncodingBindingElement
WebMessageEncodingBindingElement

Concepts

Encodage de message

Autres ressources

Choosing a Message Encoder
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings