<wsDualHttpBinding>

Definiuje bezpieczne, niezawodne i międzyoperacyjne powiązanie, które jest odpowiednie dla kontraktów usług dwukierunkowych lub komunikacji za pośrednictwem pośredników SOAP.

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

Składnia

<wsDualHttpBinding>
  <binding name="String"
          closeTimeout="TimeSpan"
          openTimeout="TimeSpan"
          receiveTimeout="TimeSpan"
          sendTimeout="TimeSpan"
          bypassProxyOnLocal="Boolean"
          clientBaseAddress="URI"
          transactionFlow="Boolean"
          hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
          maxBufferPoolSize="integer"
          maxReceivedMessageSize="Integer"
          messageEncoding="Text/Mtom"
          proxyAddress="URI"
          textEncoding="Unicode/BigEndianUnicode/UTF8"
          useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan" />
    <security mode="None/Message">
      <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
               negotiateServiceCredential="Boolean"
               algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsDualHttpBinding>

Atrybuty i elementy

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

Atrybuty

Atrybut Opis
Bypassproxyonlocal Wartość logiczna wskazująca, czy pominąć serwer proxy dla adresów lokalnych. Wartość domyślna to false.
Clientbaseaddress Identyfikator URI, który ustawia podstawowy adres, na który klient nasłuchuje komunikatów odpowiedzi z usługi. Jeśli zostanie określony, ten adres (plus per-channelGUID) jest używany do nasłuchiwania. Jeśli wartość nie zostanie określona, adres podstawowy klienta jest generowany w sposób specyficzny dla transportu. Wartość domyślna to null.
closeTimeout TimeSpan Wartość określająca interwał czasu określony dla zakończenia operacji zamknięcia. 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ć go i wrócić do puli po zakończeniu pracy. W związku z tym unika się nakładu pracy podczas tworzenia i niszczenia 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 pominie 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 Uproszczone konfigurowanie i uproszczona konfiguracjadla usług WCF.
openTimeout TimeSpan Wartość określająca interwał czasu określony 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 useDefaultWebProxy jest to true, to ustawienie musi mieć wartość null. Wartość domyślna to null.
Receivetimeout TimeSpan Wartość określająca interwał czasu określony dla wykonania operacji odbierania. 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 określony 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 Ustawia 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:

- BigEndianUnicode: kodowanie Unicode BigEndian.
- Unicode: kodowanie 16-bitowe.
- UTF8: kodowanie 8-bitowe

Wartość domyślna to UTF8. 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 wskazująca, czy jest używany automatycznie skonfigurowany serwer proxy HTTP systemu. Adres serwera proxy musi być null (czyli nie ustawiono), jeśli ten atrybut to true. Wartość domyślna to true.

Elementy podrzędne

Element Opis
<Zabezpieczeń> Definiuje ustawienia zabezpieczeń powiązania. Ten element jest typu WSDualHttpSecurityElement.
<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 niezawodne sesje 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

Zapewnia WSDualHttpBinding tę samą obsługę protokołów usługi sieci Web co WSHttpBinding, ale do użytku z kontraktami dwudupleksowymi. WSDualHttpBinding Obsługuje tylko zabezpieczenia protokołu SOAP i wymaga niezawodnej obsługi komunikatów. To powiązanie wymaga, aby klient miał publiczny identyfikator URI, który zapewnia punkt końcowy wywołania zwrotnego dla usługi. Jest to dostarczane przez clientBaseAddress atrybut . Podwójne powiązanie uwidacznia adres IP klienta usługi. Klient powinien używać zabezpieczeń, aby upewnić się, że łączy się tylko z usługami, którym ufa.

To powiązanie może służyć do niezawodnej komunikacji za pośrednictwem jednego lub większej liczby pośredników SOAP.

Domyślnie to powiązanie generuje stos środowiska uruchomieniowego z WS-ReliableMessaging pod kątem niezawodności, WS-Security na potrzeby zabezpieczeń i uwierzytelniania komunikatów, HTTP na potrzeby dostarczania komunikatów i kodowania komunikatów TEKST/XML.

Przykład

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsDualHttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 clientBaseAddress="http://localhost:8001/client/"
                 transactionFlow="true"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00" />
          <security mode="None">
            <message clientCredentialType="None"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128" />
          </security>
        </binding>
      </wsDualHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Zobacz także