<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).
<configuration>
<system.serviceModel>
<liaisons>
<customBinding>
<liaison>
<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 autorisées sont : - 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 sur la complexité des messages SOAP pouvant ê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 d’une liaison personnalisée. |
Notes
L'encodage est le processus de 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" />