<customBinding><customBinding>

Stellt Vollzugriff auf den Nachrichtenstapel für den Benutzer bereit.Provides full control over the messaging stack for the user.

<configuration> <configuration>
   <System. Service Model->   <system.serviceModel>
     <Bindungen >     <bindings>
       <CustomBinding->      <customBinding>

SyntaxSyntax

<customBinding>
  <binding name="String"
           closeTimeout="TimeSpan"
           openTimeout="TimeSpan"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan">
    <compositeDuplex clientBaseAddress="Uri" />
    <reliableSession acknowledgementInterval="TimeSpan"
                     advancedFlowControl="Boolean"
                     bufferedMessagesQuota="Integer"
                     inactivityTimeout="TimeSpan"
                     maxPendingChannels="Integer"
                     maxRetryCount="Integer"
                     ordered="Boolean" />
    <pnrpPeerResolver />
    <windowsStreamSecurity protectionLevel="None/Sign/EncryptAndSign" />
    <sslStreamSecurity requireClientCertificate="Boolean" />
    <transactionFlow transactionProtocol="OleTransactions/WSAtomicTransactionOctober2004" />
    <security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
              authenticationMode="UserNameForAnonymous"
              contextMode="Cookie"
              defaultProtectionLevel="Sign"
              enableKeyDerivation="false"
              keyEntropyMode="ClientEntropy"
              messageProtectionOrder="SignBeforeEncryptAndEncryptSignature"
              securityVersion="WSSecurityXXX2005">
      <localClientSettings cacheCookies="false"
                           detectReplays="false"
                           maxCookieCachingTime="00:07:24" />
      <localServiceSettings replayCacheSize="9"
                            maxClockSkew="00:00:03"
                            replayWindow="00:07:22.2190000" />
    </security>
    <binaryMessageEncoding maxReadPoolSize="Integer"
                           maxWritePoolSize="Integer"
                           maxSessionSize="Integer" />
    <httpsTransport manualAddressing="Boolean"
                    maxMessageSize="Integer"
                    authenticationScheme="Negotiate"
                    bypassProxyOnLocal="Boolean"
                    hostNameComparisonMode="Exact"
                    mapAddressingHeadersToHttpHeaders="Boolean"
                    proxyaddress="Uri"
                    realm="String"
                    requireClientCertificate="Boolean" />
    <peerTransport manualAddressing="false"
                   maxMessageSize="20002"
                   listenIPAddress="202.10.1.9"
                   messageAuthentication="false"
                   peerNodeAuthenticationMode="None"
                   port="1000" />
    <security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
              authenticationMode="UserNameForAnonymous"
              bootstrapBindingConfiguration="String"
              bootstrapBindingSectionName="String"
              defaultProtectionLevel="None/Sign/EncryptAndSign"
              requireDerivedKeys="Boolean"
              securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
              includeTimestamp="Boolean"
              keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
              messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
              protectTokens="Boolean"
              requireSecurityContextCancellation="Boolean"
              securityVersion=" WSSecurityJan2004/WSSecurityXXX2005"
              requireSignatureConfirmation="Boolean">
      <localClientSettings cacheCookies="Boolean"
                           detectReplays="Boolean"
                           replayCacheSize="Integer"
                           maxClockSkew="TimeSpan"
                           maxCookieCachingTime="TimeSpan"
                           replayWindow="TimeSpan"
                           sessionKeyRenewalInterval="TimeSpan"
                           sessionKeyRolloverInterval="TimeSpan"
                           reconnectOnTransportFailure="Boolean"
                           timestampValidityDuration="TimeSpan"
                           cookieRenewalThresholdPercentage="Integer" />
      <localServiceSettings detectReplays="Boolean"
                            issuedCookieLifeTime="TimeSpan"
                            maxStatefulNegotiations="Integer"
                            replayCacheSize="Integer"
                            maxClockSkew="TimeSpan"
                            negotiationTimeout="TimeSpan"
                            replayWindow="TimeSpan"
                            inactivityTimeout="TimeSpan"
                            sessionKeyRenewalInterval="TimeSpan"
                            sessionKeyRolloverInterval="TimeSpan"
                            reconnectOnTransportFailure="Boolean"
                            maxConcurrentSessions="Integer"
                            timestampValidityDuration="TimeSpan" />
      <federationParameters trustVersion="WSTrustApr2004/WSTrustFeb2005" />
    </security>
    <security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
              authenticationMode="UserNameForAnonymous"
              bootstrapBindingConfiguration="String"
              bootstrapBindingSectionName="String"
              defaultProtectionLevel="None/Sign/EncryptAndSign"
              requireDerivedKeys="Boolean"
              securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
              includeTimestamp="Boolean"
              keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
              messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
              protectTokens="Boolean"
              requireSecurityContextCancellation="Boolean"
              securityVersion=" WSSecurityJan2004/WSSecurityXXX2005"
              requireSignatureConfirmation="Boolean" >
      <localClientSettings cacheCookies="Boolean"
                           detectReplays="Boolean"
                           replayCacheSize="Integer"
                           maxClockSkew="TimeSpan"
                           maxCookieCachingTime="TimeSpan"
                           replayWindow="TimeSpan"
                           sessionKeyRenewalInterval="TimeSpan"
                           sessionKeyRolloverInterval="TimeSpan"
                           reconnectOnTransportFailure="Boolean"
                           timestampValidityDuration="TimeSpan"
                           cookieRenewalThresholdPercentage="Integer" />
      <localServiceSettings detectReplays="Boolean"
                           issuedCookieLifeTime="TimeSpan"
                           maxStatefulNegotiations="Integer"
                           replayCacheSize="Integer"
                           maxClockSkew="TimeSpan"
                           negotiationTimeout="TimeSpan"
                           replayWindow="TimeSpan"
                           inactivityTimeout="TimeSpan"
                           sessionKeyRenewalInterval="TimeSpan"
                           sessionKeyRolloverInterval="TimeSpan"
                           reconnectOnTransportFailure="Boolean"
                           maxConcurrentSessions="Integer"
                           timestampValidityDuration="TimeSpan" />
      <federationParameters trustVersion="WSTrustApr2004/WSTrustFeb2005" />
      <genericIssuedTokenParameters>
        <localIssuerIssuedTokenParameters keyType="SymmetricKey/PublicKey"
                                          keySize="Integer"
                                          tokenType="String" />
        <issuedTokenParametersEndpointAddress address="URI"
                                              bindingConfiguration="String"
                                              binding="String" />
        <issuedTokenClient localIssuerChannelBehaviors="String"
                           cacheIssuedTokens="Boolean"
                           maxIssuedTokenCachingTime="TimeSpan"
                           keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy" />
        <issuedTokenClientBehavior issuerAddress="String"
                                   behaviorConfiguration="String" />
        <issuedTokenClientBehavior address="URI"
                                   bindingConfiguration="String"
                                   binding="String" />
      </genericIssuedTokenParameters>
    </security>
  </binding>
</customBinding>

Attribute und ElementeAttributes and Elements

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente sowie übergeordnete Elemente beschrieben.The following sections describe attributes, child elements, and parent elements

AttributeAttributes

AttributAttribute BeschreibungDescription
closeTimeoutcloseTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Schließvorgangs angibt.A TimeSpan value that specifies the interval of time provided for a close operation to complete. Dieser Wert muss größer oder gleich Zero sein.This value should be greater than or equal to Zero. Der Standardwert ist 00:01:00.The default is 00:01:00.
Namename Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält.A string that contains the configuration name of the binding. Dieser Wert ist eine benutzerdefinierte Zeichenfolge, die als Identifikationszeichenfolge für die benutzerdefinierte Bindung fungiert.This value is a user-defined string that acts as the identification string for the custom binding. Ab .NET Framework 4.NET Framework 4 müssen Bindungen und Verhalten keinen Namen aufweisen.Starting with .NET Framework 4.NET Framework 4, bindings and behaviors are not required to have a name. Weitere Informationen zur Standardkonfiguration und zu den namenlosen Bindungen und Verhalten finden Sie unter vereinfachte Konfiguration und vereinfachte Konfiguration für WCF-Dienste.For more information about default configuration and nameless bindings and behaviors, see Simplified Configuration and Simplified Configuration for WCF Services.
openTimeoutopenTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Öffnungsvorgangs angibt.A TimeSpan value that specifies the interval of time provided for an open operation to complete. Dieser Wert muss größer oder gleich Zero sein.This value should be greater than or equal to Zero. Der Standardwert ist 00:01:00.The default is 00:01:00.
receiveTimeoutreceiveTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Empfangsvorgangs angibt.A TimeSpan value that specifies the interval of time provided for a receive operation to complete. Dieser Wert muss größer oder gleich Zero sein.This value should be greater than or equal to Zero. Der Standardwert ist 00:01:00.The default is 00:01:00.
sendTimeoutsendTimeout Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Sendevorgangs angibt.A TimeSpan value that specifies the interval of time provided for a send operation to complete. Dieser Wert muss größer oder gleich Zero sein.This value should be greater than or equal to Zero. Der Standardwert ist 00:01:00.The default is 00:01:00.

Untergeordnete ElementeChild Elements

ElementElement BeschreibungDescription
<compositeDuplex><compositeDuplex> Legt bidirektionales Messaging für die benutzerdefinierte Bindung fest.Specifies two-way messaging to the custom binding. Das Element wird mit Transporten verwendet, die keine systemseitige Duplexkommunikation ermöglichen, z. B. HTTP.It is used with transports that do not allow duplex communications natively, for example, HTTP. Im Gegensatz dazu ermöglicht das TCP-Protokoll die systemseitige Duplexkommunikation, ohne dass das Bindungselement für den Dienst zum Senden von Nachrichten an den Client benötigt wird.TCP, by contrast, allows duplex communications natively, and does not require the use of this binding element for the service to send messages back to a client.

Der Client muss eine Adresse für den Dienst verfügbar machen, um den Kontakt herzustellen und eine Verbindung aufzubauen.The client must expose an address for the service to make contact and establish a connection. Die Clientadresse wird vom ClientBaseAddress-Attribut bereitgestellt.This client address is provided by the ClientBaseAddress attribute.

Dieses Element ist vom Typ CompositeDuplexElement.This element is of type CompositeDuplexElement.
<pnrpPeerResolver><pnrpPeerResolver> Gibt einen PNRP (Peer Name Resolution-Protokoll)-Peernamenresolver an.Specifies a Peer Name Resolution Protocol (PNRP) peer name resolver. Dieses Element ist vom Typ PnrpPeerResolverElement.This element is of type PnrpPeerResolverElement.
<reliableSession><reliableSession> Legt die Einstellung für WS-Reliable Messaging fest.Specifies the setting for WS-Reliable Messaging. Wenn dieses Element einer benutzerdefinierten Bindung hinzugefügt wird, kann der resultierende Kanal ExactlyOnce-Zustellungszusicherungen unterstützen.When this element is added to a custom binding, the resulting channel can support exactly-once delivery assurances. Dieses Element ist vom Typ ReliableSessionElement.This element is of type ReliableSessionElement.
<security><security> Gibt die Sicherheitsoptionen für die benutzerdefinierte Bindung an.Specifies the options for security of the custom binding. Dieses Element ist vom Typ SecurityElement.This element is of type SecurityElement.
<sslStreamSecurity><sslStreamSecurity> Gibt die Sicherheitseinstellungen für eine SSL-Streambindung an.Specifies the security settings for a SSL stream binding. Dieses Element ist vom Typ SslStreamSecurityElement.This element is of type SslStreamSecurityElement.
<transactionFlow><transactionFlow> Legt fest, dass die Bindung Transaktionsfluss und das vom transactionProtocol-Attribut zu verwendende Protokoll unterstützt.Specifies that the binding supports transaction flow, and the protocol to be used by the transactionProtocol attribute. Dieses Element ist vom Typ TransactionFlowElement.This element is of type TransactionFlowElement.
<windowsStreamSecurity><windowsStreamSecurity> Gibt die Optionen für die Streamingsicherheit der benutzerdefinierten Bindung an.Specifies the options for streaming security of the custom binding. Dieses Element ist vom Typ WindowsStreamSecurityElement.This element is of type WindowsStreamSecurityElement.

Übergeordnete ElementeParent Elements

ElementElement BeschreibungDescription
Bindungenbindings Enthält alle Bindungen für Windows Communication Foundation-Anwendungen.Contains all bindings for Windows Communication Foundation applications.

HinweiseRemarks

Benutzerdefinierte Bindungen stellen Vollzugriff auf den WCF-Messagingstapel bereit.Custom bindings provide full control over the WCF messaging stack. Speziell angepasste Bindungen können durch Hinzufügen der Konfigurationselemente für bestimmte Entitäten erstellt werden.Special tailored bindings can be created my adding the configuration elements for specific entities. Der Benutzer kann beispielsweise den Abschnitt httpsTransport, reliableSession und security zum Erstellen einer zuverlässigen und sicheren HTTPS-basierten Bindung kombinieren.For example, the user can combine the httpsTransport section, reliableSession section and the security section to create a reliable and secure https based binding.

Eine individuelle Bindung definiert den Nachrichtenstapel durch Angeben der Konfigurationselemente für Stapelelemente in der Reihenfolge des Stapels.An individual binding defines the message stack by specifying the configuration elements for the stack elements in the order they appear on the stack. Jedes Element definiert und konfiguriert das eine Element des Stapels.Each element defines and configures the one element of the stack. Es muss genau ein Transportelement in jeder benutzerdefinierten Bindung geben.There must be one and only one transport element in each custom binding. Ohne dieses Element ist der Messagingstapel unvollständig.Without this element, the messaging stack is incomplete.

Die Reihenfolge der Elemente im Stapel ist von Belang, da sie der Reihenfolge entspricht, in der Vorgänge auf die Meldung angewendet werden.The order in which elements appear in the stack matters, because it is the order in which operations are applied to the message. Die empfohlene Reihenfolge von Stapelelementen ist folgende:The recommended order of stack elements is the following:

  1. Transaktionen (optional)Transactions (optional)

  2. Zuverlässiges Messaging (optional)Reliable Messaging (optional)

  3. Sicherheit (Security, optional)Security (optional)

  4. TransportTransport

  5. Encoder (optional)Encoder (optional)

Verwenden Sie eine benutzerdefinierte Bindung, wenn eine der vom System bereitgestellten Bindungen die Anforderungen für Ihren Dienst nicht erfüllt.Use a custom binding when one of the system-provided bindings does not meet the requirements of your service. Eine benutzerdefinierte Bindung kann beispielsweise verwendet werden, um die Nutzung eines neuen Transports oder eines neuen Encoders an einem Dienstendpunkt zu aktivieren.A custom binding could be used, for example, to enable the use of a new transport or a new encoder at a service endpoint.

Eine benutzerdefinierte Bindung wird durch Verwendung einer der CustomBinding aus einer Sammlung an Bindungselementen erstellt, die in einer spezifischen Reihenfolge "gestapelt" sind:A custom binding is constructed using one of the CustomBinding from a collection of binding elements that are "stacked" in a specific order:

In der folgenden Tabelle werden die Optionen für jede Ebene zusammengefasst.The following table summarizes the options for each layer.

EbeneLayer OptionenOptions RequiredRequired
TransaktionsflussTransaction Flow TransactionFlowBindingElement NeinNo
ZuverlässigkeitReliability ReliableSessionBindingElement NeinNo
SicherheitSecurity Symmetrisch, asymmetrisch, auf TransportebeneSymmetric, Asymmetric, Transport-Level NeinNo
FormänderungShape Change CompositeDuplexBindingElement NeinNo
Transport-UpgradesTransport Upgrades SSL-Stream, Windows-Stream, PeerresolverSSL stream, Windows stream, Peer Resolver NeinNo
CodierungEncoding Text, Binärdatei, MTOM, benutzerdefiniertText, Binary, MTOM, Custom JaYes
TransportTransport TCP, Named Pipes, HTTP, HTTPS, Typen der MSMQ, benutzerdefiniertTCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom JaYes

Zusätzlich können Sie Ihre eigenen Bindungselemente definieren und diese zwischen den vorangehenden definierten Ebenen einsetzen.In addition, you can define your own binding elements and insert them between any of the preceding defined layers.

Eine Erläuterung zur Verwendung einer benutzerdefinierten Bindung zum Ändern einer vom System bereitgestellten Bindung finden Sie unter Gewusst wie: Passen Sie eine vom System bereitgestellte Bindung an.For a discussion on how to use a custom binding to modify a system-provided binding, see How to: Customize a System-Provided Binding.

Siehe auchSee also