<wsHttpBinding>

Definiuje bezpieczne, niezawodne, współdziałalne powiązanie odpowiednie dla kontraktów usług niedupleksowych. Powiązanie implementuje następujące specyfikacje: WS-Reliable Messaging w celu zapewnienia niezawodności i WS-Security na potrzeby zabezpieczeń i uwierzytelniania komunikatów. Transport to HTTP, a kodowanie komunikatów to kodowanie tekstu/XML.

<Konfiguracji>
  <System.servicemodel>
    <Powiązania>
      <wsHttpBinding>

Składnia

<wsHttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Text/Mtom"
           name="string"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transactionFlow="Boolean"
           useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <security mode="Message/None/Transport/TransportWithCredential">
      <transport clientCredentialType="Basic/Certificate/Digest/None/Ntlm/Windows"
                 proxyCredentialType="Basic/Digest/None/Ntlm/Windows"
                 realm="string" />
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="Certificate/IssuedToken/None/UserName/Windows"
               establishSecurityContext="Boolean"
               negotiateServiceCredential="Boolean" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsHttpBinding>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne

Atrybuty

Atrybut Opis
allowCookies Wartość logiczna wskazująca, czy klient akceptuje pliki cookie i propaguje je na przyszłych żądaniach. Wartością domyślną jest false.

Tej właściwości można używać podczas interakcji z usługami sieci Web ASMX korzystającymi z plików cookie. W ten sposób można mieć pewność, że pliki cookie zwrócone z serwera są automatycznie kopiowane do wszystkich przyszłych żądań klientów dla tej usługi.
Bypassproxyonlocal Wartość logiczna wskazująca, czy pominąć serwer proxy dla adresów lokalnych. Wartość domyślna to false.
closeTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji zamknięcia do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
Hostnamecomparisonmode Określa tryb porównania nazwy hosta HTTP używany do analizowania identyfikatorów URI. Ten atrybut jest typu HostNameComparisonMode, który wskazuje, czy nazwa hosta jest używana do dotarcia do usługi podczas dopasowywania identyfikatora URI. Wartość domyślna to StrongWildcard, która ignoruje nazwę hosta w dopasowaniu.
Maxbufferpoolsize Liczba całkowita określająca maksymalny rozmiar puli buforów dla tego powiązania. Wartość domyślna to 524 288 bajtów (512 * 1024). Wiele części programu Windows Communication Foundation (WCF) używa buforów. Tworzenie i niszczenie buforów za każdym razem, gdy są używane, jest kosztowne, a odzyskiwanie pamięci dla buforów jest również kosztowne. W przypadku pul buforów można pobrać bufor z puli, użyć jej i powrócić do puli po zakończeniu. W związku z tym unika się obciążeń związanych z tworzeniem i niszczeniem buforów.
Maxreceivedmessagesize Dodatnia liczba całkowita określająca maksymalny rozmiar komunikatu w bajtach, w tym nagłówki, które można odebrać w kanale skonfigurowanym za pomocą tego powiązania. Nadawca komunikatu przekraczającego ten limit otrzyma błąd protokołu SOAP. Odbiorca odrzuca komunikat i tworzy wpis zdarzenia w dzienniku śledzenia. Wartość domyślna to 65536.
messageEncoding Definiuje koder używany do kodowania komunikatu. Prawidłowe wartości obejmują następujące wartości:

- Tekst: użyj kodera wiadomości SMS.
- Mtom: Użyj kodera mechanizmu organizacji transmisji komunikatów 1.0 (MTOM).
— Wartość domyślna to Tekst.

Ten atrybut jest typu WSMessageEncoding.
name Ciąg zawierający nazwę konfiguracji powiązania. Ta wartość powinna być unikatowa, ponieważ jest używana jako identyfikacja powiązania. Począwszy od .NET Framework 4, powiązania i zachowania nie muszą mieć nazwy. Aby uzyskać więcej informacji na temat domyślnej konfiguracji i bez nazw powiązań i zachowań, zobacz Uproszczona konfiguracja i Uproszczona konfiguracja dla usług WCF.
openTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji otwierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
Proxyaddress Identyfikator URI określający adres serwera proxy HTTP. Jeśli useSystemWebProxy ma truewartość , to ustawienie musi mieć wartość null. Wartość domyślna to null.
Receivetimeout TimeSpan Wartość określająca interwał czasu podany dla operacji odbierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
sendTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji wysyłania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
textEncoding Określa kodowanie zestawu znaków, które ma być używane do emitowania komunikatów w powiązaniu. Prawidłowe wartości obejmują następujące wartości:

- UnicodeFffeTextEncoding: kodowanie Unicode BigEndian.
- Utf16TextEncoding: kodowanie 16-bitowe.
- Utf8TextEncoding: kodowanie 8-bitowe.

Wartość domyślna to Utf8TextEncoding.

Ten atrybut jest typu Encoding.
transactionFlow Wartość logiczna określająca, czy powiązanie obsługuje przepływ transakcji WS-Transactions. Wartość domyślna to false.
useDefaultWebProxy Wartość logiczna określająca, czy jest używany automatycznie skonfigurowany serwer proxy HTTP systemu. Wartość domyślna to true.

Elementy podrzędne

Element Opis
<Zabezpieczeń> Definiuje ustawienia zabezpieczeń dla powiązania. Ten element jest typu WSHttpSecurityElement.
<Readerquotas> Definiuje ograniczenia dotyczące złożoności komunikatów protokołu SOAP, które mogą być przetwarzane przez punkty końcowe skonfigurowane za pomocą tego powiązania. Ten element jest typu XmlDictionaryReaderQuotasElement.
<reliableSession> Określa, czy sesje niezawodne są ustanawiane między punktami końcowymi kanału.

Elementy nadrzędne

Element Opis
<Powiązania> Ten element zawiera kolekcję powiązań standardowych i niestandardowych.

Uwagi

Element WSHttpBinding jest podobny do elementu BasicHttpBinding , ale zapewnia więcej funkcji usługi sieci Web. Korzysta z transportu HTTP i zapewnia zabezpieczenia komunikatów, podobnie jak BasicHttpBinding, ale zapewnia również transakcje, niezawodne komunikaty i adresowanie WS, włączone domyślnie lub dostępne za pomocą jednego ustawienia kontrolki.

Przykład

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsHttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 transactionFlow="false"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00"
                           enabled="true" />
          <security mode="Transport">
            <transport clientCredentialType="Digest"
                       proxyCredentialType="None"
                       realm="someRealm" />
            <message clientCredentialType="Windows"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128"
                     defaultProtectionLevel="None" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Zobacz także