Partager via


<webMessageEncoding>

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

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

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

Attributs et éléments

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 codeur interne (texte, JSON, et « brut »).

L'augmentation de ce nombre entraîne celle de la consommation de mémoire, mais prépare le codeur 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 codeur interne (texte, JSON, et « brut »).

L'augmentation de ce nombre entraîne celle de la consommation de mémoire, mais prépare le codeur 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 le codage de jeu de caractères à utiliser pour l'émission de messages sur la liaison. Les valeurs valides sont les suivantes :

  • UnicodeFffeTextEncoding : codage Unicode Big Endian.
  • Utf16TextEncoding : codage Unicode.
  • Utf8TextEncoding : codage 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 correspondant à la liaison personnalisée.

Notes

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

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

Cet élément de liaison et son codeur composite sont utilisés pour contrôler le codage 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). Le codeur de messages composite ne prend pas en charge SOAP ni WS-Addressing.

L'élément de liaison peut être configuré avec un codage 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 codages 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

Codage de message

Autres ressources

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