Megosztás a következőn keresztül:


<customBinding>

Teljes körű vezérlést biztosít az üzenetkezelési verem felett a felhasználó számára.

<Konfigurációs>
  <system.serviceModel>
    <Kötések>
      <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>

Attribútumok és elemek

A következő szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik

Attribútumok

Attribútum Leírás
closeTimeout Egy TimeSpan érték, amely megadja a bezárási művelet befejezéséhez megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.
name A kötés konfigurációs nevét tartalmazó sztring. Ez az érték egy felhasználó által definiált sztring, amely az egyéni kötés azonosító sztringjeként működik. A .NET-keretrendszer 4-től kezdve a kötéseknek és a viselkedéseknek nem kell nevet adniuk. További információ az alapértelmezett konfigurációról, valamint a név nélküli kötésekről és viselkedésekről: Egyszerűsített konfiguráció és egyszerűsített konfiguráció WCF-szolgáltatásokhoz.
openTimeout Egy TimeSpan érték, amely meghatározza a nyitott művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.
receiveTimeout Egy TimeSpan érték, amely meghatározza a fogadási művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.
sendTimeout Egy TimeSpan érték, amely meghatározza a küldési művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.

Gyermekelemek

Elem Leírás
<compositeDuplex> Kétirányú üzenetküldést ad meg az egyéni kötéshez. Olyan átvitelekkel használják, amelyek nem teszik lehetővé a kétirányú kommunikációt natív módon, például HTTP-vel. A TCP ezzel szemben natív módon teszi lehetővé a kétoldalas kommunikációt, és nem igényel ilyen kötési elemet ahhoz, hogy a szolgáltatás üzeneteket küldjön vissza az ügyfélnek.

Az ügyfélnek közzé kell tennie egy címet a szolgáltatás számára, hogy kapcsolatot létesítsen és kapcsolatot létesítsen. Ezt az ügyfélcímet az ClientBaseAddress attribútum adja meg.

Ez az elem típusa CompositeDuplexElement.
<pnrpPeerResolver> Megadja a PEER Name Resolution Protocol (PNRP) társnév-feloldóját. Ez az elem típusa PnrpPeerResolverElement.
<reliableSession> A WS-Reliable Üzenetkezelés beállítását adja meg. Ha ezt az elemet hozzáadja egy egyéni kötéshez, az eredményként kapott csatorna támogatja a pontosan egyszeri kézbesítési biztosítékokat. Ez az elem típusa ReliableSessionElement.
<Biztonsági> Megadja az egyéni kötés biztonsági beállításait. Ez az elem típusa SecurityElement.
<sslStreamSecurity> Megadja az SSL-streamkötés biztonsági beállításait. Ez az elem típusa SslStreamSecurityElement.
<transactionFlow> Megadja, hogy a kötés támogatja a tranzakciós folyamatot és az attribútum által használandó protokollt transactionProtocol . Ez az elem típusa TransactionFlowElement.
<windowsStreamSecurity> Megadja az egyéni kötés streamelési biztonságának beállításait. Ez az elem típusa WindowsStreamSecurityElement.

Szülőelemek

Elem Leírás
Kötések A Windows Communication Foundation-alkalmazások összes kötését tartalmazza.

Megjegyzések

Az egyéni kötések teljes körű vezérlést biztosítanak a WCF üzenetkezelési verem felett. Speciális testreszabott kötéseket hozhatok létre a konfigurációs elemek adott entitásokhoz való hozzáadásával. A felhasználó például kombinálhatja a szakaszt, reliableSession a httpsTransport szakaszt és a security szakaszt egy megbízható és biztonságos HTTPS-alapú kötés létrehozásához.

Az egyes kötések úgy határozzák meg az üzenetvermet, hogy a veremelemek konfigurációs elemeit a veremen megjelenő sorrendben adják meg. Minden elem meghatározza és konfigurálja a verem egy elemét. Minden egyes egyéni kötésben csak egy átviteli elemnek kell lennie. E elem nélkül az üzenetkezelési verem hiányos.

Az elemek veremben való megjelenésének sorrendje számít, mivel ez az a sorrend, amelyben a műveletek az üzenetre vonatkoznak. A veremelemek ajánlott sorrendje a következő:

  1. Tranzakciók (nem kötelező)

  2. Reliable Messaging (nem kötelező)

  3. Biztonság (nem kötelező)

  4. Átvitel

  5. Kódoló (nem kötelező)

Egyéni kötést akkor használjon, ha a rendszer által biztosított kötések egyike nem felel meg a szolgáltatás követelményeinek. Egyéni kötéssel például új átvitelt vagy új kódolót használhat egy szolgáltatásvégponton.

Az egyéni kötések a CustomBinding kötéselemek egy adott sorrendben "halmozott" gyűjteményének egyikével jönnek létre:

Az alábbi táblázat összefoglalja az egyes rétegek beállításait.

Réteg Beállítások Kötelező
Tranzakciós folyamat TransactionFlowBindingElement Nem
Megbízhatóság ReliableSessionBindingElement Nem
Biztonság Szimmetrikus, aszimmetrikus, Transport-Level Nem
Alakzat módosítása CompositeDuplexBindingElement Nem
Átviteli frissítések SSL-stream, Windows-stream, társfeloldó Nem
Encoding Szöveg, bináris, MTOM, egyéni Igen
Átvitel TCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom Igen

Emellett saját kötési elemeket is definiálhat, és beszúrhatja őket az előző definiált rétegek bármelyike közé.

A rendszer által biztosított kötések egyéni kötéssel történő módosításáról a How to: Customize a System-Provided Binding (Útmutató: System-Provided kötés testreszabása) című témakörben olvashat.

Lásd még