Aracılığıyla paylaş


<Custombinding>

Kullanıcı için mesajlaşma yığını üzerinde tam denetim sağlar.

<Yapılandırma>
  <system.serviceModel>
    <Bağlama>
      <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>

Öznitelikler ve Öğeler

Aşağıdaki bölümlerde öznitelikler, alt öğeler ve üst öğeler açıklanmaktadır

Öznitelikler

Öznitelik Açıklama
closeTimeout Kapatma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
name Bağlamanın yapılandırma adını içeren bir dize. Bu değer, özel bağlama için tanımlama dizesi işlevi gören kullanıcı tanımlı bir dizedir. .NET Framework 4'den başlayarak, bağlamaların ve davranışların bir ada sahip olması gerekmez. Varsayılan yapılandırma ve adsız bağlamalar ve davranışlar hakkında daha fazla bilgi için bkz. WCF Hizmetleri için Basitleştirilmiş Yapılandırma ve Basitleştirilmiş Yapılandırma.
openTimeout Açma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
receiveTimeout Alma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
sendTimeout Gönderme TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.

Alt Öğeler

Öğe Açıklama
<compositeDuplex> Özel bağlamaya yönelik iki yönlü mesajlaşmayı belirtir. Çift yönlü iletişimlere yerel olarak izin verilmeyen aktarımlarla (örneğin, HTTP) kullanılır. TCP ise çift yönlü iletişimlere yerel olarak izin verir ve hizmetin bir istemciye ileti göndermesi için bu bağlama öğesinin kullanılmasını gerektirmez.

İstemcinin iletişim kurmak ve bağlantı kurmak için hizmetin adresini kullanıma sunması gerekir. Bu istemci adresi özniteliği tarafından ClientBaseAddress sağlanır.

Bu öğe türündedir CompositeDuplexElement.
<pnrpPeerResolver> Eş Adı Çözümleme Protokolü (PNRP) eş adı çözümleyicisini belirtir. Bu öğe türündedir PnrpPeerResolverElement.
<reliableSession> WS-Reliable Mesajlaşma ayarını belirtir. Bu öğe özel bağlamaya eklendiğinde, sonuçta elde edilen kanal tam olarak bir kez teslim güvencelerini destekleyebilir. Bu öğe türündedir ReliableSessionElement.
<Güvenlik> Özel bağlamanın güvenliği için seçenekleri belirtir. Bu öğe türündedir SecurityElement.
<sslStreamSecurity> SSL akış bağlamasının güvenlik ayarlarını belirtir. Bu öğe türündedir SslStreamSecurityElement.
<transactionFlow> Bağlamanın işlem akışını ve özniteliği tarafından kullanılacak protokolü desteklediğini transactionProtocol belirtir. Bu öğe türündedir TransactionFlowElement.
<windowsStreamSecurity> Özel bağlamanın akış güvenliği seçeneklerini belirtir. Bu öğe türündedir WindowsStreamSecurityElement.

Üst Öğeler

Öğe Açıklama
bağlamalar Windows Communication Foundation uygulamaları için tüm bağlamaları içerir.

Açıklamalar

Özel bağlamalar WCF mesajlaşma yığını üzerinde tam denetim sağlar. Özel olarak uyarlanmış bağlamalar, belirli varlıklar için yapılandırma öğelerini eklemem için oluşturulabilir. Örneğin, kullanıcı güvenilir ve güvenli bir https tabanlı bağlama oluşturmak için bölümü, reliableSession bölümü ve security bölümü birleştirebilirhttpsTransport.

Tek bir bağlama, yığın öğelerinin yapılandırma öğelerini yığında göründükleri sırayla belirterek ileti yığınını tanımlar. Her öğe, yığının bir öğesini tanımlar ve yapılandırılır. Her özel bağlamada bir ve yalnızca bir taşıma öğesi olmalıdır. Bu öğe olmadan mesajlaşma yığını tamamlanmamıştır.

öğelerin yığında görünme sırası önemlidir, çünkü bu, işlemlerin iletiye uygulanma sırasıdır. Yığın öğelerinin önerilen sırası şunlardır:

  1. İşlemler (isteğe bağlı)

  2. Reliable Messaging (isteğe bağlı)

  3. Güvenlik (isteğe bağlı)

  4. Aktarım

  5. Kodlayıcı (isteğe bağlı)

Sistem tarafından sağlanan bağlamalardan biri hizmetinizin gereksinimlerini karşılamadığında özel bağlama kullanın. Örneğin, bir hizmet uç noktasında yeni bir aktarım veya yeni bir kodlayıcı kullanımını etkinleştirmek için özel bir bağlama kullanılabilir.

Özel bağlama, belirli bir sırada "yığılmış" bağlama öğeleri koleksiyonundan biri CustomBinding kullanılarak oluşturulur:

Aşağıdaki tabloda her katman için seçenekler özetlenmiştir.

Katman Seçenekler Gerekli
İşlem Akışı TransactionFlowBindingElement Hayır
Güvenilirlik ReliableSessionBindingElement Hayır
Güvenlik Simetrik, Asimetrik, Transport-Level Hayır
Şekil Değişikliği CompositeDuplexBindingElement Hayır
Taşıma Yükseltmeleri SSL akışı, Windows akışı, Eş Çözümleyici Hayır
Encoding Metin, İkili, MTOM, Özel Yes
Aktarım TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ türleri, Özel Yes

Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tanımlı katmanlardan herhangi birinin arasına ekleyebilirsiniz.

Sistem tarafından sağlanan bağlamayı değiştirmek için özel bağlama kullanma hakkında bir tartışma için bkz . Nasıl yapılır: System-Provided Bağlamasını Özelleştirme.

Ayrıca bkz.