Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poskytuje úplnou kontrolu nad zásobníkem zasílání zpráv pro uživatele.
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
Syntaxe
<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>
Atributy a prvky
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Attributes
| Vlastnost | Description |
|---|---|
| closeTimeout | Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace uzavření. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
| název | Řetězec, který obsahuje název konfigurace vazby. Tato hodnota je uživatelem definovaný řetězec, který funguje jako identifikační řetězec pro vlastní vazbu. Počínaje rozhraním .NET Framework 4 není nutné, aby vazby a chování měly název. Další informace o výchozí konfiguraci a beznázvových vazbách a chování najdete v tématu Zjednodušená konfigurace a zjednodušená konfigurace pro služby WCF. |
| openTimeout | Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení otevřené operace. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
| receiveTimeout | Hodnota TimeSpan , která určuje časový interval určený k dokončení operace příjmu. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
| sendTimeout | Hodnota TimeSpan , která určuje časový interval určený k dokončení operace odeslání. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
Podřízené prvky
| prvek | Description |
|---|---|
| <compositeDuplex> | Určuje obousměrné zasílání zpráv do vlastní vazby. Používá se s přenosy, které nativně neumožňují duplexní komunikaci, například HTTP. Naproti tomu protokol TCP umožňuje nativně duplexní komunikaci a nevyžaduje použití tohoto elementu vazby, aby služba odeslala zprávy zpět klientovi. Klient musí zveřejnit adresu, aby služba kontaktovala a navazovala připojení. Tato adresa klienta je poskytována atributem ClientBaseAddress .Tento prvek je typu CompositeDuplexElement. |
| <pnrpPeerResolver> | Určuje překladač názvů partnerských uzlů PROTOKOLU PNRP (Peer Name Resolution Protocol). Tento prvek je typu PnrpPeerResolverElement. |
| <Reliablesession> | Určuje nastavení pro zasílání zpráv WS-Reliable. Když se tento prvek přidá do vlastní vazby, výsledný kanál může podporovat přesně jednou záruky doručení. Tento prvek je typu ReliableSessionElement. |
| <bezpečnost> | Určuje možnosti zabezpečení vlastní vazby. Tento prvek je typu SecurityElement. |
| <sslStreamSecurity> | Určuje nastavení zabezpečení pro vazbu streamu SSL. Tento prvek je typu SslStreamSecurityElement. |
| <Transactionflow> | Určuje, že vazba podporuje tok transakce a protokol, který má být použit atributem transactionProtocol . Tento prvek je typu TransactionFlowElement. |
| <windowsStreamSecurity> | Určuje možnosti pro zabezpečení streamování vlastní vazby. Tento prvek je typu WindowsStreamSecurityElement. |
Nadřazené prvky
| prvek | Description |
|---|---|
| bindings | Obsahuje všechny vazby pro aplikace Windows Communication Foundation. |
Poznámky
Vlastní vazby poskytují úplnou kontrolu nad zásobníkem zasílání zpráv WCF. Speciální přizpůsobené vazby lze vytvořit přidáním konfiguračních prvků pro konkrétní entity. Uživatel může například zkombinovat httpsTransport oddíl, reliableSession oddíl a oddíl a vytvořit spolehlivou a zabezpečenou vazbu založenou security na https.
Jednotlivá vazba definuje zásobník zpráv zadáním konfiguračních prvků pro elementy zásobníku v pořadí, v jakém se zobrazují v zásobníku. Každý prvek definuje a konfiguruje jeden prvek zásobníku. V každé vlastní vazbě musí být jeden a pouze jeden transportní prvek. Bez tohoto prvku je zásobník zasílání zpráv neúplný.
Pořadí, ve kterém se prvky v zásobníku zobrazují, záleží, protože se jedná o pořadí, ve kterém se operace na zprávu použijí. Doporučené pořadí elementů zásobníku je následující:
Transakce (volitelné)
Spolehlivé zasílání zpráv (volitelné)
Zabezpečení (volitelné)
Transport
Kodér (volitelné)
Použijte vlastní vazbu, pokud jedna ze systémových vazeb nesplňuje požadavky vaší služby. Vlastní vazbu je možné použít například k povolení použití nového přenosu nebo nového kodéru v koncovém bodu služby.
Vlastní vazba je vytvořena pomocí jedné z CustomBinding kolekce vazeb prvků, které jsou "skládané" v určitém pořadí:
Nahoře je nepovinný, TransactionFlowBindingElement který umožňuje tok transakcí.
Dále je volitelný ReliableSessionBindingElement , který poskytuje mechanismus relace a řazení definovaný ve specifikaci WS-ReliableMessaging. Tento pojem relace může překračovat zprostředkovatele SOAP a dopravy.
Dále je volitelný prvek vazby zabezpečení, který poskytuje funkce zabezpečení, jako je autorizace, ověřování, ochrana a důvěrnost. Windows Communication Foundation (WCF) poskytuje následující prvky vazby zabezpečení:
Dále jsou volitelné vzory zpráv určené prvky vazby:
Dále jsou volitelné upgrady přenosu / pomocné prvky vazby:
Dále je povinný element vazby kódování zpráv. Můžete použít vlastní přenos nebo použít jednu z následujících vazeb kódování zpráv:
V dolní části je povinný transportní prvek. Můžete použít vlastní přenos nebo použít jeden z elementů přenosové vazby poskytované službou Windows Communication Foundation (WCF):
Následující tabulka shrnuje možnosti pro každou vrstvu.
| Vrstva | Možnosti | Povinné |
|---|---|---|
| Tok transakcí | TransactionFlowBindingElement | Ne |
| Reliability | ReliableSessionBindingElement | Ne |
| Zabezpečení | Symetrické, asymetrické, Transport-Level | Ne |
| Změna obrazce | CompositeDuplexBindingElement | Ne |
| Upgrady přenosu | Stream SSL, Stream Systému Windows, Překladač partnerských uzlů | Ne |
| Encoding | Text, Binární, MTOM, Vlastní | Ano |
| Transport | TCP, pojmenované kanály, HTTP, HTTPS, příchutě MSMQ, vlastní | Ano |
Kromě toho můžete definovat vlastní prvky vazby a vložit je mezi libovolnou z předchozích definovaných vrstev.
Diskuzi o použití vlastní vazby k úpravě systémové vazby naleznete v tématu Postupy: Přizpůsobení vazby System-Provided.