<wsDualHttpBinding>

Definiert eine sichere und interoperable Bindung, die für Duplexdienstverträge oder für die Kommunikation über SOAP-Vermittler geeignet ist.

<configuration>
  <system.serviceModel>
    <bindings>
      <wsDualHttpBinding>

Syntax

<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>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente sowie übergeordnete Elemente beschrieben.

Attribute

attribute BESCHREIBUNG
bypassProxyOnLocal Ein boolescher Wert, der angibt, ob der Proxyserver bei lokalen Adressen umgangen werden soll. Der Standardwert ist false.
clientBaseAddress Ein URI, der die Basisadresse festlegt, die vom Client auf Antwortnachrichten vom Dienst überwacht wird. Wenn dies angegeben wurde, wird diese Adresse (einschließlich der kanalspezifischen GUIDs) zur Überwachung verwendet. Wenn kein Wert angegeben wurde, wird die Basisadresse des Clients je nach Transport generiert. Der Standardwert ist null.
closeTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Schließvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.
hostnameComparisonMode Gibt den HTTP-Hostnamen-Vergleichsmodus an, der verwendet wird, um URIs zu analysieren. Dieses Attribut ist vom Typ HostNameComparisonMode und gibt an, ob beim Abgleich des URI der Hostname zum Erreichen des Dienstes verwendet wird. Der Standardwert lautet StrongWildcard, wodurch der Hostname beim Abgleich ignoriert wird.
maxBufferPoolSize Eine ganze Zahl, die die maximale Pufferpoolgröße für diese Bindung angibt. Der Standardwert ist 524.288 Byte (512 * 1024). Viele Teile von Windows Communication Foundation (WCF) verwenden Puffer. Das Erstellen und Zerstören von Puffern bei jeder Verwendung ist kostspielig. Dasselbe gilt für die Garbage Collection für Puffer. Bei Pufferpools können Sie einen zu verwendenden Puffer aus dem Pool nehmen und ihn nach der Verwendung wieder dem Pool zuführen. So wird der Aufwand beim Erstellen und Zerstören von Puffern vermieden.
maxReceivedMessageSize Eine positive ganze Zahl, die die maximale Nachrichtengröße in Bytes einschließlich Header angibt, die in einem für diese Bindung konfigurierten Kanal beim Nachrichtenempfang zulässig ist. Der Absender einer Nachricht, die diese Grenze überschreitet, erhält einen SOAP-Fehler. Der Empfänger verwirft die Nachricht und erstellt einen Eintrag des Ereignisses im Ablaufverfolgungsprotokoll. Der Standard ist 65536.
messageEncoding Definiert den Encoder, der verwendet wird, um die SOAP-Nachricht zu codieren. Gültige Werte sind:

– Text: Verwenden eines Textnachrichtencodierers.
– Mtom: Verwenden eines MTOM 1.0-Codierers (Message Transmission Organization Mechanism).
– Der Standardwert ist „Text“.

Dieses Attribut ist vom Typ WSMessageEncoding.
name Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält. Dieser Wert sollte eindeutig sein, da er von der Bindung zur Identifizierung verwendet wird. Ab .NET Framework 4 müssen Bindungen und Verhalten keinen Namen aufweisen. Weitere Informationen über Standardkonfiguration und namenlose Bindungen und Verhalten finden Sie unter Simplified Configuration (Vereinfachte Konfiguration) und Simplified Configuration for WCF Services (Vereinfachte Konfiguration für WCF-Dienste).
openTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Öffnungsvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.
proxyAddress Ein URI, der die Adresse des HTTP-Proxys angibt. Wenn useDefaultWebProxytrue ist, muss diese Einstellung null lauten. Der Standardwert ist null.
receiveTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Empfangsvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.
sendTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Sendevorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.
textEncoding Legt die Zeichensatzkodierung fest, die zum Ausgeben von Nachrichten über die Bindung verwendet werden soll. Gültige Werte sind:

– BigEndianUnicode: Unicode-BigEndian-Codierung.
– Unicode: 16-Bit-Codierung.
– UTF8: 8-Bit-Codierung.

Der Standardwert ist UTF8. Dieses Attribut ist vom Typ Encoding.
transactionFlow Ein boolescher Wert, der angibt, ob die Bindung geleitete WS-Transaktionen unterstützt. Der Standardwert ist false.
useDefaultWebProxy Ein boolescher Wert, der angibt, ob der automatisch konfigurierte HTTP-Proxy des Systems verwendet wird. Die Proxyadresse muss null sein (das heißt, sie ist nicht festgelegt), wenn dieses Attribut den Wert true hat. Der Standardwert ist true.

Untergeordnete Elemente

Element BESCHREIBUNG
<security> Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ WSDualHttpSecurityElement.
<readerQuotas> Definiert die Beschränkungen der Komplexität von SOAP-Nachrichten, die von Endpunkten verarbeitet werden können, die mit dieser Bindung konfiguriert wurden. Dieses Element ist vom Typ XmlDictionaryReaderQuotasElement.
<reliableSession> Gibt an, ob zuverlässige Sitzungen zwischen Kanalendpunkten aufgebaut werden.

Übergeordnete Elemente

Element BESCHREIBUNG
<bindings> Dieses Element enthält eine Auflistung von standardmäßigen und benutzerdefinierten Bindungen.

Bemerkungen

Die WSDualHttpBinding bietet die gleiche Unterstützung für Webdienstprotokolle wie die WSHttpBinding, jedoch für die Verwendung mit Duplexverträgen. WSDualHttpBinding unterstützt ausschließlich SOAP-Sicherheit und erfordert zuverlässiges Messaging. Diese Bindung macht es erforderlich, dass der Client einen öffentlichen URI aufweist, der einen Rückrufendpunkt für den Dienst bereitstellt. Dies wird vom clientBaseAddress-Attribut zur Verfügung gestellt. Eine Dualbindung macht die IP-Adresse des Clients für den Dienst verfügbar. Der Client sollte Sicherheitseinstellungen verwenden, um sicherzustellen, dass nur Verbindungen zu vertrauenswürdigen Diensten hergestellt werden.

Diese Bindung kann zur zuverlässigen Kommunikation über einen oder mehrere SOAP-Vermittler verwendet werden.

Diese Bindung generiert standardmäßig einen Laufzeitstapel mit WS-ReliableMessaging für die Zuverlässigkeit, WS-Security für die Nachrichtensicherheit und –authentifizierung, HTTP für die Nachrichtenübertragung und Kodierung von Text-/XML-Nachrichten.

Beispiel

<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>

Siehe auch