<customBinding>
Biedt volledige controle over de berichtenstack voor de gebruiker.
<Configuratie>
<system.serviceModel>
<Bindings>
<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>
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven
Kenmerken
Kenmerk | Beschrijving |
---|---|
closeTimeout | Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een close-bewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
naam | Een tekenreeks die de configuratienaam van de binding bevat. Deze waarde is een door de gebruiker gedefinieerde tekenreeks die fungeert als de identificatietekenreeks voor de aangepaste binding. Vanaf .NET Framework 4 zijn bindingen en gedrag niet vereist om een naam te hebben. Zie Vereenvoudigde configuratie en Vereenvoudigde configuratie voor WCF-services voor meer informatie over standaardconfiguratie en naamloze bindingen en gedrag. |
openTimeout | Een TimeSpan waarde die het tijdsinterval aangeeft dat een open bewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
receiveTimeout | Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een ontvangstbewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
sendTimeout | Een TimeSpan waarde die het tijdsinterval aangeeft dat een verzendbewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
Onderliggende elementen
Element | Beschrijving |
---|---|
<compositeDuplex> | Hiermee geeft u berichten in twee richtingen naar de aangepaste binding. Het wordt gebruikt met transporten die geen systeemeigen dubbelzijdige communicatie toestaan, bijvoorbeeld HTTP. TCP staat daarentegen systeemeigen dubbelzijdige communicatie toe en vereist geen gebruik van dit bindingselement voor de service om berichten terug te sturen naar een client. De client moet een adres voor de service beschikbaar maken om contact te maken en een verbinding tot stand te brengen. Dit clientadres wordt geleverd door het ClientBaseAddress kenmerk.Dit element is van het type CompositeDuplexElement. |
<pnrpPeerResolver> | Hiermee geeft u een Peer Name Resolution Protocol (PNRP) peer name resolver. Dit element is van het type PnrpPeerResolverElement. |
<reliableSession> | Hiermee geeft u de instelling voor WS-Reliable Messaging. Wanneer dit element wordt toegevoegd aan een aangepaste binding, kan het resulterende kanaal exactly-once-leveringsgaranties ondersteunen. Dit element is van het type ReliableSessionElement. |
<Veiligheid> | Hiermee geeft u de opties voor beveiliging van de aangepaste binding. Dit element is van het type SecurityElement. |
<sslStreamSecurity> | Hiermee geeft u de beveiligingsinstellingen voor een SSL-stroombinding op. Dit element is van het type SslStreamSecurityElement. |
<transactionFlow> | Hiermee geeft u op dat de binding de transactiestroom ondersteunt en het protocol dat moet worden gebruikt door het transactionProtocol kenmerk. Dit element is van het type TransactionFlowElement. |
<windowsStreamSecurity> | Hiermee geeft u de opties voor streamingbeveiliging van de aangepaste binding. Dit element is van het type WindowsStreamSecurityElement. |
Bovenliggende elementen
Element | Beschrijving |
---|---|
Bindings | Bevat alle bindingen voor Windows Communication Foundation-toepassingen. |
Opmerkingen
Aangepaste bindingen bieden volledige controle over de WCF-berichtenstack. Er kunnen speciale op maat gemaakte bindingen worden gemaakt door de configuratie-elementen voor specifieke entiteiten toe te voegen. De gebruiker kan bijvoorbeeld de httpsTransport
sectie, reliableSession
sectie en sectie security
combineren om een betrouwbare en veilige op HTTPS gebaseerde binding te maken.
Een afzonderlijke binding definieert de berichtenstack door de configuratie-elementen voor de stack-elementen op te geven in de volgorde waarin ze op de stack worden weergegeven. Elk element definieert en configureert het ene element van de stack. Er moet slechts één transportelement in elke aangepaste binding zijn. Zonder dit element is de berichtenstack onvolledig.
De volgorde waarin elementen in de stack worden weergegeven, is van belang, omdat dit de volgorde is waarin bewerkingen worden toegepast op het bericht. De aanbevolen volgorde van stack-elementen is de volgende:
Transacties (optioneel)
Reliable Messaging (optioneel)
Beveiliging (optioneel)
Transport
Encoder (optioneel)
Gebruik een aangepaste binding wanneer een van de door het systeem geleverde bindingen niet voldoet aan de vereisten van uw service. Een aangepaste binding kan bijvoorbeeld worden gebruikt om het gebruik van een nieuw transport of een nieuwe encoder op een service-eindpunt mogelijk te maken.
Een aangepaste binding wordt samengesteld met behulp van een van de CustomBinding uit een verzameling bindingselementen die in een specifieke volgorde zijn 'gestapeld':
Bovenaan bevindt zich een optionele TransactionFlowBindingElement optie waarmee stromende transacties kunnen worden toegestaan.
De volgende is een optionele ReliableSessionBindingElement die een sessie- en volgordemechanisme biedt zoals gedefinieerd in de specificatie WS-ReliableMessaging. Dit begrip van een sessie kan SOAP- en transporttussenpersonen kruisen.
Het volgende is een optioneel beveiligingsbindingselement dat beveiligingsfuncties biedt, zoals autorisatie, verificatie, beveiliging en vertrouwelijkheid. De volgende beveiligingsbindingselementen worden geleverd door Windows Communication Foundation (WCF):
Hierna volgen de optionele berichtpatronen die zijn opgegeven door bindingselementen:
Hierna volgen de optionele bindingselementen voor transportupgrades/helpers:
Het volgende is een verplicht bindingselement voor berichtcodering. U kunt uw eigen transport gebruiken of een van de volgende bindingen voor berichtcodering gebruiken:
Onderaan bevindt zich een vereist transportelement. U kunt uw eigen transport gebruiken of een van de transportbindingselementen van Windows Communication Foundation (WCF) gebruiken:
De volgende tabel bevat een overzicht van de opties voor elke laag.
Laag | Opties | Vereist |
---|---|---|
Transactiestroom | TransactionFlowBindingElement | Nee |
Betrouwbaarheid | ReliableSessionBindingElement | Nee |
Beveiliging | Symmetrisch, Asymmetrisch, Transport-Level | Nee |
Vorm wijzigen | CompositeDuplexBindingElement | Nee |
Transportupgrades | SSL-stream, Windows-stream, Peer Resolver | Nee |
Encoding | Tekst, Binair, MTOM, Aangepast | Ja |
Transport | TCP, Named Pipes, HTTP, HTTPS, smaken van MSMQ, aangepast | Ja |
Daarnaast kunt u uw eigen bindingselementen definiëren en deze invoegen tussen een van de voorgaande gedefinieerde lagen.
Zie Procedure: een System-Provided-binding aanpassen voor een discussie over het gebruik van een aangepaste binding om een door het systeem geleverde binding te wijzigen.