Dela via


<webMessageEncoding>

Gör att Oformaterat XML-meddelande, JSON-meddelandekodningar (JavaScript Object Notation) och "raw"-binärt innehåll kan läsas och skrivas när de används i en WCF-bindning (Windows Communication Foundation).

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

Syntax

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

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attributes

Attribute Description
maxReadPoolSize Mängden meddelanden som kan läsas samtidigt utan att nya läsare allokeras. Större poolstorlekar gör systemet mer tolerant mot aktivitetstoppar på bekostnad av en större arbetsuppsättning. Standardvärdet är 64 läsare för var och en av de inre kodarna (text, JSON och "raw").

Om du ökar det här antalet ökar minnesförbrukningen, men kodaren förbereds för att hantera plötsliga utbrott av inkommande meddelanden eftersom den kan använda läsare från poolen som redan har skapats i stället för att skapa nya.
maxWritePoolSize Mängden meddelanden som kan skickas samtidigt utan att nya författare allokeras. Större poolstorlekar gör systemet mer tolerant mot aktivitetstoppar på bekostnad av en större arbetsuppsättning. Standardvärdet är 16 skrivare för var och en av de inre kodarna (text, JSON och "raw").

Om du ökar det här antalet ökar minnesförbrukningen, men kodaren förbereds för att hantera plötsliga utbrott av utgående meddelanden eftersom den kan använda skrivare från poolen som redan har skapats i stället för att skapa nya.
writeEncoding Anger den teckenuppsättningskodning som ska användas för att generera meddelanden på bindningen. Giltiga värden är:

- UnicodeFffeTextEncoding: Unicode Big Endian-kodning.
- Utf16TextEncoding: Unicode-kodning.
- Utf8TextEncoding: 8-bitars kodning.

Standardvärdet är Utf8TextEncoding. Det här attributet är av typen Encoding.

Underordnade element

Komponent Description
<readerQuotas> Definierar begränsningarna för komplexiteten i SOAP-meddelanden som kan bearbetas av slutpunkter som konfigurerats med den här bindningen. Det här elementet är av typen XmlDictionaryReaderQuotasElement.

Överordnade element

Komponent Description
<bindande> Definierar alla bindningsfunktioner i den anpassade bindningen.

Anmärkningar

Kodning är processen att omvandla ett meddelande till en sekvens med byte. Avkodning är den omvända processen. Dessa processer kräver specifikation av en teckenkodning.

Elementet webMessageEncoding fungerar genom att delegera till en serie inre kodare för att hantera Oformaterad XML- och JSON-kodning och "råa" binära data. Den här delegeringen görs av en sammansatt meddelandekodare.

Det här bindningselementet och dess sammansatta kodare används för att styra kodningen i scenarier som inte använder SOAP-meddelanden som används av elementet webHttpBinding . Dessa scenarier inkluderar "Plain Old XML" (POX), Representational State Transfer (REST), Really Simple Syndication (RSS) och Atom syndication samt Asynkron JavaScript och XML (AJAX). Den sammansatta meddelandekodaren stöder inte SOAP eller WS-Addressing.

Bindningselementet kan konfigureras med en skrivteckenkodning med hjälp writeEncoding av attributet . Det angivna Encoding värdet anger beteendet vid skrivning för JSON- och Text-XML-fallen. Vid läsning förstås alla giltiga meddelandekodningar och textkodning.

maxReadPoolSize och maxWritePoolSize kan också användas för att ange det maximala antalet läsare respektive författare som ska allokeras. Som standard allokeras 64 läsare och 16 skrivare.

Standardkomplexitetsbegränsningar anges också med hjälp av elementet< readerQuotas> för att skydda mot en dos-attack (Denial of Service) som försöker använda meddelandekomplexitet för att binda slutpunktsbearbetningsresurser.

Example

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

Se även