Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bietet vollständige Kontrolle über den Messaging-Stapel für den Benutzer.
<Konfiguration>
<system.serviceModel>
<Einbände>
<Custombinding>
Syntax
<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 Elemente
In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.
Attribute
| Merkmal | Description |
|---|---|
| closeTimeout | Ein TimeSpan Wert, der das Zeitintervall angibt, das für einen abschlussden Vorgang bereitgestellt wird. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00. |
| name | Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält. Dieser Wert ist eine benutzerdefinierte Zeichenfolge, die als Identifikationszeichenfolge für die benutzerdefinierte Bindung fungiert. Ab .NET Framework 4 müssen Bindungen und Verhaltensweisen keinen Namen haben. Weitere Informationen zu Standardkonfigurationen und namenslosen Bindungen und Verhaltensweisen finden Sie unter Vereinfachte Konfiguration und vereinfachte Konfiguration für WCF-Dienste. |
| openTimeout | Ein TimeSpan Wert, der das Für den Abschluss eines geöffneten Vorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00. |
| receiveTimeout | Ein TimeSpan Wert, der das Für den Abschluss eines Empfangsvorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00. |
| sendTimeout | Ein TimeSpan Wert, der das Für den Abschluss eines Sendevorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00. |
Untergeordnete Elemente
| Element | Description |
|---|---|
| <compositeDuplex> | Gibt bidirektionale Nachrichten an die benutzerdefinierte Bindung an. Es wird mit Transporten verwendet, die die Duplexkommunikation nicht nativ zulassen, z. B. HTTP. TCP lässt dagegen die Duplexkommunikation nativ zu und erfordert nicht die Verwendung dieses Bindungselements für den Dienst, um Nachrichten an einen Client zurückzusenden. Der Client muss eine Adresse für den Dienst verfügbar machen, um Kontakt herzustellen und eine Verbindung herzustellen. Diese Clientadresse wird vom ClientBaseAddress Attribut bereitgestellt.Dieses Element ist vom Typ CompositeDuplexElement. |
| <pnrpPeerResolver> | Gibt einen Peer Name Resolution Protocol (PNRP)-Peernamenlöser an. Dieses Element ist vom Typ PnrpPeerResolverElement. |
| <Reliablesession> | Gibt die Einstellung für WS-Reliable Messaging an. Wenn dieses Element zu einer benutzerdefinierten Bindung hinzugefügt wird, kann der resultierende Kanal genau einmal übermittlungssicher unterstützen. Dieses Element ist vom Typ ReliableSessionElement. |
| <Sicherheit> | Gibt die Optionen für die Sicherheit der benutzerdefinierten Bindung an. Dieses Element ist vom Typ SecurityElement. |
| <sslStreamSecurity> | Gibt die Sicherheitseinstellungen für eine SSL-Datenstrombindung an. Dieses Element ist vom Typ SslStreamSecurityElement. |
| <Transactionflow> | Gibt an, dass die Bindung den Transaktionsfluss unterstützt, und das Protokoll, das vom transactionProtocol Attribut verwendet werden soll. Dieses Element ist vom Typ TransactionFlowElement. |
| <windowsStreamSecurity> | Gibt die Optionen für die Streamingsicherheit der benutzerdefinierten Bindung an. Dieses Element ist vom Typ WindowsStreamSecurityElement. |
Übergeordnete Elemente
| Element | Description |
|---|---|
| bindings | Enthält alle Bindungen für Windows Communication Foundation-Anwendungen. |
Bemerkungen
Benutzerdefinierte Bindungen bieten die vollständige Kontrolle über den WCF-Messagingstapel. Spezielle maßgeschneiderte Bindungen können erstellt werden, um die Konfigurationselemente für bestimmte Entitäten hinzuzufügen. Beispielsweise kann der Benutzer den Abschnitt, httpsTransport den reliableSession Abschnitt und den security Abschnitt kombinieren, um eine zuverlässige und sichere httpsbasierte Bindung zu erstellen.
Eine einzelne Bindung definiert den Nachrichtenstapel, indem die Konfigurationselemente für die Stapelelemente in der Reihenfolge angegeben werden, in der sie im Stapel angezeigt werden. Jedes Element definiert und konfiguriert das ein Element des Stapels. Es muss ein und nur ein Transportelement in jeder benutzerdefinierten Bindung vorhanden sein. Ohne dieses Element ist der Messaging-Stapel unvollständig.
Die Reihenfolge, in der Elemente im Stapel angezeigt werden, ist wichtig, da es sich um die Reihenfolge handelt, in der Vorgänge auf die Nachricht angewendet werden. Die empfohlene Reihenfolge von Stapelelementen lautet wie folgt:
Transaktionen (optional)
Zuverlässiges Messaging (optional)
Sicherheit (optional)
Transport
Encoder (optional)
Verwenden Sie eine benutzerdefinierte Bindung, wenn eine der vom System bereitgestellten Bindungen nicht den Anforderungen Ihres Diensts entspricht. Eine benutzerdefinierte Bindung kann z. B. verwendet werden, um die Verwendung eines neuen Transports oder eines neuen Encoders an einem Dienstendpunkt zu ermöglichen.
Eine benutzerdefinierte Bindung wird mithilfe einer der CustomBinding Aus einer Sammlung von Bindungselementen erstellt, die in einer bestimmten Reihenfolge "gestapelt" sind:
Oben ist eine optionale Option TransactionFlowBindingElement , die flussende Transaktionen zulässt.
Als Nächstes ist eine optionale ReliableSessionBindingElement Option, die einen Sitzungs- und Sortiermechanismus bereitstellt, wie in der WS-ReliableMessaging Spezifikation definiert. Dieser Begriff einer Sitzung kann SOAP- und Transportintermediäre überschreiten.
Als Nächstes ist ein optionales Sicherheitsbindungselement, das Sicherheitsfeatures wie Autorisierung, Authentifizierung, Schutz und Vertraulichkeit bereitstellt. Die folgenden Sicherheitsbindungselemente werden von Windows Communication Foundation (WCF) bereitgestellt:
Als Nächstes sind die optionalen Nachrichtenmuster aufgeführt, die durch Bindungselemente angegeben werden:
Als Nächstes sind die optionalen Transportupgrades/Hilfselemente zum Binden von Elementen:
Als Nächstes ist ein erforderliches Nachrichtencodierungsbindungselement vorhanden. Sie können Ihren eigenen Transport verwenden oder eine der folgenden Nachrichtencodierungsbindungen verwenden:
Unten befindet sich ein erforderliches Transportelement. Sie können Ihren eigenen Transport verwenden oder eines der Transportbindungselemente verwenden, die von Windows Communication Foundation (WCF) bereitgestellt werden:
In der folgenden Tabelle sind die Optionen für jede Ebene zusammengefasst.
| Ebene | Options | Erforderlich |
|---|---|---|
| Transaktionsfluss | TransactionFlowBindingElement | Nein |
| Zuverlässigkeit | ReliableSessionBindingElement | Nein |
| Sicherheit | Symmetrisch, asymmetrisch, Transport-Level | Nein |
| Formänderung | CompositeDuplexBindingElement | Nein |
| Transportupgrades | SSL-Stream, Windows-Stream, Peer Resolver | Nein |
| Codierung | Text, Binärdatei, MTOM, benutzerdefiniert | Yes |
| Transport | TCP, Named Pipes, HTTP, HTTPS, Aromen von MSMQ, Custom | Yes |
Darüber hinaus können Sie eigene Bindungselemente definieren und zwischen einer der vorherigen definierten Ebenen einfügen.
Eine Erläuterung zur Verwendung einer benutzerdefinierten Bindung zum Ändern einer vom System bereitgestellten Bindung finden Sie unter How to: Customize a System-Provided Binding.