Delen via


<webMessageEncoding>

Hiermee kunnen XML-tekst zonder opmaak, JSON-berichtcoderingen (JavaScript Object Notation) en 'onbewerkte' binaire inhoud worden gelezen en geschreven wanneer deze worden gebruikt in een WCF-binding (Windows Communication Foundation).

<Configuratie>
  <system.serviceModel>
    <Bindings>
      <customBinding>
        <Bindend>
          <webMessageEncoding>

Syntax

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

Kenmerken en elementen

In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.

Kenmerken

Kenmerk Beschrijving
maxReadPoolSize Het aantal berichten dat tegelijkertijd kan worden gelezen zonder nieuwe lezers toe te wijzen. Grotere groepen maken het systeem toleranter voor activiteitspieken, ten koste van een grotere werkset. De standaardwaarde is 64 lezers voor elk van de interne encoders (tekst, JSON en 'raw').

Het verhogen van dit aantal verhoogt het geheugenverbruik, maar bereidt de encoder voor op het omgaan met plotselinge bursts van binnenkomende berichten, omdat deze lezers uit de pool kan gebruiken die al zijn gemaakt in plaats van nieuwe te maken.
maxWritePoolSize Het aantal berichten dat tegelijkertijd kan worden verzonden zonder nieuwe schrijvers toe te wijzen. Grotere groepen maken het systeem toleranter voor activiteitspieken, ten koste van een grotere werkset. De standaardwaarde is 16 schrijvers voor elk van de interne coderingsprogramma's (tekst, JSON en 'raw').

Het verhogen van dit aantal verhoogt het geheugenverbruik, maar bereidt de encoder voor op het omgaan met plotselinge bursts van uitgaande berichten, omdat het schrijvers uit de pool kan gebruiken die al zijn gemaakt in plaats van nieuwe te maken.
writeEncoding Hiermee geeft u de tekensetcodering die moet worden gebruikt voor het verzenden van berichten op de binding. Geldige waarden zijn:

- UnicodeFffeTextEncoding: Unicode Big Endian-codering.
- Utf16TextEncoding: Unicode-codering.
- Utf8TextEncoding: 8-bits codering.

De standaardwaarde is Utf8TextEncoding. Dit kenmerk is van het type Encoding.

Onderliggende elementen

Element Beschrijving
<readerQuotas> Definieert de beperkingen voor de complexiteit van SOAP-berichten die kunnen worden verwerkt door eindpunten die met deze binding zijn geconfigureerd. Dit element is van het type XmlDictionaryReaderQuotasElement.

Bovenliggende elementen

Element Beschrijving
<Bindend> Definieert alle bindingsmogelijkheden van de aangepaste binding.

Opmerkingen

Encoding is het proces waarbij een bericht wordt omgezet in een reeks bytes. Decoderen is het omgekeerde proces. Voor deze processen is de specificatie van een tekencodering vereist.

Het webMessageEncoding element werkt door delegeren aan een reeks interne encoders voor het verwerken van de XML- en JSON-coderingen zonder opmaak, en 'onbewerkte' binaire gegevens. Deze overdracht wordt uitgevoerd door een samengestelde berichtencoderingsprogramma.

Dit bindingselement en de samengestelde encoder worden gebruikt om de codering te beheren in scenario's waarin geen SOAP-berichten worden gebruikt die door het webHttpBinding element worden gebruikt. Deze scenario's omvatten 'Plain Old XML' (POX), Representational State Transfer (REST), Really Simple Syndication (RSS) en Atom syndication en Asynchroon JavaScript and XML (AJAX). De coderingsprogramma voor samengestelde berichten biedt geen ondersteuning voor SOAP of WS-Addressing.

Het bindingselement kan worden geconfigureerd met een schrijftekencodering met behulp van het writeEncoding kenmerk . De opgegeven Encoding waarde geeft het gedrag op bij het schrijven voor de JSON- en Tekstuele XML-cases. Bij het lezen wordt elke geldige berichtcodering en tekstcodering begrepen.

maxReadPoolSize en maxWritePoolSize kan ook worden gebruikt om het maximum aantal respectievelijk toe te wijzen lezers en schrijvers in te stellen. Standaard worden 64 lezers en 16 schrijvers toegewezen.

Standaardcomplexiteitsbeperkingen worden ook ingesteld met behulp van het <element readerQuotas ter bescherming tegen een klasse dos-aanvallen (Denial of Service) die proberen om berichtcomplexiteit te gebruiken om eindpuntverwerkingsresources> te koppelen.

Voorbeeld

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

Zie ook