<netHttpBinding>

Představuje vazbu, kterou může služba Windows Communication Foundation (WCF) použít ke konfiguraci a zveřejnění koncových bodů, které jsou schopny komunikovat přes HTTP. Při použití s duplexním kontraktem se použijí webové sokety, jinak se použije HTTP.

<Konfigurace>
  <System.servicemodel>
    <Vazby>
      <netHttpBinding>

Syntax

<netHttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="Integer"
           maxBufferSize="Integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Binary/Text/Mtom"
           name="String"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
           useDefaultWebProxy="Boolean">
    <security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
      <transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
                 proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
                 realm="string" />
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="UserName/Certificate" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netHttpBinding>

Typ

Type

Atributy a elementy

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
allowCookies Logická hodnota, která označuje, jestli klient přijímá soubory cookie a šíří je v budoucích požadavcích. Výchozí formát je false.

Tuto vlastnost můžete použít při interakci s webovými službami ASMX, které používají soubory cookie. Tímto způsobem si můžete být jistí, že se soubory cookie vrácené ze serveru automaticky zkopírují do všech budoucích požadavků klientů pro tuto službu.
bypassProxyOnLocal Logická hodnota označující, zda se má obejít proxy server pro místní adresy. Výchozí formát je false.

Internetový prostředek je místní, pokud má místní adresu. Místní adresa je adresa, která je ve stejném počítači, místní síti LAN nebo intranetu, a je syntakticky identifikována chybějící tečkou (.) jako v identifikátorech http://webserver/ URI a http://localhost/.

Nastavení tohoto atributu určuje, jestli koncové body nakonfigurované pomocí BasicHttpBinding používají proxy server při přístupu k místním prostředkům. Pokud je truetento atribut , požadavky na místní internetové prostředky nepoužívají proxy server. Název hostitele (nikoli localhost) použijte, pokud chcete, aby klienti při komunikaci se službami na stejném počítači procházeli proxy serverem, pokud je tento atribut nastavený na truehodnotu .

Pokud je falsetento atribut , všechny internetové požadavky jsou prováděny prostřednictvím proxy serveru.
closeTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace uzavření. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:01:00.
hostNameComparisonMode Určuje režim porovnání názvů hostitelů HTTP, který se používá k analýze identifikátorů URI. Tento atribut je typu HostNameComparisonMode, který označuje, jestli se název hostitele používá k připojení ke službě při porovnávání v identifikátoru URI. Výchozí hodnota je StrongWildcard, která ignoruje název hostitele v shodě.
maxBufferPoolSize Celočíselná hodnota, která určuje maximální velikost paměti přidělené pro použití správcem vyrovnávacích pamětí zpráv, které přijímají zprávy z kanálu. Výchozí hodnota je 524288 (0x80000) bajtů.

Správce vyrovnávacích pamětí minimalizuje náklady na používání vyrovnávacích pamětí pomocí fondu vyrovnávacích pamětí. Vyrovnávací paměti se vyžadují ke zpracování zpráv službou, když vyjdou z kanálu. Pokud není ve fondu vyrovnávacích pamětí dostatek paměti pro zpracování načítání zpráv, musí Správce vyrovnávacích pamětí přidělit další paměť z haldy CLR, což zvyšuje režii uvolňování paměti. Rozsáhlé přidělení z haldy uvolňování paměti CLR indikuje, že velikost fondu vyrovnávací paměti je příliš malá a že výkon lze zvýšit s větším přidělením zvýšením limitu určeného tímto atributem.
maxBufferSize Celočíselná hodnota, která určuje maximální velikost vyrovnávací paměti v bajtech, která ukládá zprávy během jejich zpracování pro koncový bod nakonfigurovaný s touto vazbou. Výchozí hodnota je 65 536 bajtů.
maxReceivedMessageSize Kladné celé číslo, které definuje maximální velikost zprávy v bajtech včetně hlaviček pro zprávu, která může být přijata v kanálu nakonfigurovaného s touto vazbou. Odesílatel obdrží chybu SOAP, pokud je zpráva pro příjemce příliš velká. Příjemce zprávu zahodí a vytvoří záznam události v protokolu trasování. Výchozí hodnota je 65 536 bajtů.
messageEncoding Definuje kodér použitý ke kódování zprávy SOAP. Platné hodnoty zahrnují následující:

– Text: Použijte kodér textových zpráv.
- Mtom: Použijte kodér MTOM (Message Transmission Organization Mechanism 1.0).

Výchozí hodnota je Text. Tento atribut je typu WSMessageEncoding.
name Řetězec, který obsahuje konfigurační název vazby. Tato hodnota by měla být jedinečná, protože se používá jako identifikace vazby. Počínaje rozhraním .NET Framework 4 není nutné, aby vazby a chování měly název. Další informace o výchozí konfiguraci a beznázvových vazbách a chování najdete v tématu Zjednodušená konfigurace a zjednodušená konfigurace pro služby WCF.
openTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace otevření. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:01:00.
proxyAddress Identifikátor URI, který obsahuje adresu proxy serveru HTTP. Pokud useSystemWebProxy je nastavená hodnota true, toto nastavení musí být null. Výchozí formát je null.
receiveTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace příjmu. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:10:00.
sendTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace odeslání. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:01:00.
textEncoding Nastaví kódování znakové sady, které se má použít pro generování zpráv ve vazbě. Platné hodnoty zahrnují následující:

- BigEndianUnicode: Kódování Unicode BigEndian.
- Unicode: 16bitové kódování.
- UTF8: 8bitové kódování

Výchozí hodnota je UTF8. Tento atribut je typu Encoding.
transferMode Platná TransferMode hodnota, která určuje, jestli se zprávy budou ukládat do vyrovnávací paměti nebo streamovat v požadavku nebo odpovědi.
useDefaultWebProxy Logická hodnota, která určuje, jestli se má použít automaticky nakonfigurovaný proxy server HTTP systému, pokud je k dispozici. Výchozí formát je true.

Podřízené elementy

Element Popis
<Zabezpečení> Definuje nastavení zabezpečení pro vazbu. Tento prvek je typu BasicHttpSecurityElement.
<readerQuotas> Definuje omezení složitosti zpráv SOAP, které mohou být zpracovány koncovými body nakonfigurovanými pomocí této vazby. Tento prvek je typu XmlDictionaryReaderQuotasElement.

Nadřazené elementy

Element Popis
<Vazby> Tento prvek obsahuje kolekci standardních a vlastních vazeb.

Poznámky

NetHttpBinding používá jako přenos pro odesílání zpráv protokol HTTP. Při použití s duplexním kontraktem se použijí webové sokety. Při použití se kontraktem žádosti a odpovědi se NetHttpBinding bude chovat jako BasicHttpBinding s binárním kodérem.

Zabezpečení je ve výchozím nastavení vypnuté, ale můžete ho přidat nastavením atributu mode podřízeného <elementu zabezpečení> na jinou hodnotu než None. Ve výchozím nastavení používá kódování textových zpráv a kódování textu UTF-8.

Příklad 1

Následující příklad ukazuje použití NetHttpBinding , které poskytuje komunikaci HTTP a maximální interoperabilitu s webovými službami první a druhé generace. Vazba je určena v konfiguračních souborech pro klienta a službu. Typ vazby je určen pomocí atributu binding elementu <endpoint> . Pokud chcete nakonfigurovat základní vazbu a změnit některá její nastavení, je nutné definovat konfiguraci vazby. Koncový bod musí odkazovat na konfiguraci vazby podle názvu pomocí atributu bindingConfiguration elementu <endpoint> , jak je znázorněno v následujícím konfiguračním kódu služby.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="netHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <netHttpBinding>
      <binding name="Binding1"
               hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Binary"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </netHttpBinding>
  </bindings>
</system.serviceModel>

Příklad 2

Počínaje rozhraním .NET Framework 4 není nutné, aby vazby a chování měly název. Funkce z předchozího příkladu lze dosáhnout odebráním bindingConfiguration z adresy koncového bodu a názvu z vazby.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="netHttpBinding"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <netHttpBinding>
      <binding hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Binary"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </netHttpBinding>
  </bindings>
</system.serviceModel>

Další informace o výchozí konfiguraci a beznázvových vazbách a chování najdete v tématu Zjednodušená konfigurace a zjednodušená konfigurace pro služby WCF.

Viz také