Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kullanıcı için mesajlaşma yığını üzerinde tam denetim sağlar.
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
Sözdizimi
<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
Attributes
| Özellik | Description |
|---|---|
| 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 buna 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çinBasitleştirilmiş Yapılandırma ve Basitleştirilmiş Yapılandırma. |
| openTimeout | Açık TimeSpan işlemin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya buna 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 buna Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır. |
| sendTimeout | TimeSpan Gönderme işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya buna Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır. |
Alt Öğeler
| Öğe | Description |
|---|---|
| <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 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> | Bir Eş Adı Çözümleme Protokolü (PNRP) eş adı çözümleyicisi 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üvenlik seçeneklerini belirtir. Bu öğe türündedir SecurityElement. |
| <sslStreamSecurity> | SSL akış bağlaması için 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 | Description |
|---|---|
| bindings | 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ü, httpsTransport bölümü ve reliableSession bölümü birleştirebilirsecurity.
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ırr. Her özel bağlamada bir ve yalnızca bir aktarım öğ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:
İşlemler (isteğe bağlı)
Reliable Messaging (isteğe bağlı)
Güvenlik (isteğe bağlı)
Transport
Kodlayıcı (isteğe bağlı)
Sistem tarafından sağlanan bağlamalardan biri hizmetinizin gereksinimlerini karşılamadığında özel bağlama kullanın. Özel bağlama, örneğin bir hizmet uç noktasında yeni bir aktarım veya yeni kodlayıcı kullanımını etkinleştirmek için kullanılabilir.
Özel bağlama, belirli bir sırada "yığılmış" bağlama öğeleri koleksiyonundan biri CustomBinding kullanılarak oluşturulur:
En üstte, akış işlemlerine izin veren isteğe bağlı TransactionFlowBindingElement bir seçenek bulunur.
Sonraki, WS-ReliableMessaging belirtiminde tanımlandığı gibi bir oturum ve sıralama mekanizması sağlayan isteğe bağlı ReliableSessionBindingElement bir seçenektir. Bir oturumun bu ifadesi SOAP ve aktarım aracıları arasında geçiş yapabilir.
Sonraki, yetkilendirme, kimlik doğrulaması, koruma ve gizlilik gibi güvenlik özellikleri sağlayan isteğe bağlı bir güvenlik bağlama öğesidir. Aşağıdaki güvenlik bağlama öğeleri Windows Communication Foundation (WCF) tarafından sağlanır:
Sonraki, bağlama öğeleri tarafından belirtilen isteğe bağlı ileti desenleridir:
Sonraki adım isteğe bağlı aktarım yükseltmeleri/yardımcıları bağlama öğeleridir:
Sonraki, gerekli bir ileti kodlama bağlama öğesidir. Kendi aktarımınızı kullanabilir veya aşağıdaki ileti kodlama bağlamalarından birini kullanabilirsiniz:
Alt kısımda gerekli bir taşıma öğesi bulunur. Kendi taşımanızı kullanabilir veya Windows Communication Foundation (WCF) tarafından sağlanan aktarım bağlama öğelerinden birini kullanabilirsiniz:
Aşağıdaki tabloda her katman için seçenekler özetlenmiştir.
| Katman | Options | Gerekli |
|---|---|---|
| İşlem Akışı | TransactionFlowBindingElement | Hayı |
| Reliability | ReliableSessionBindingElement | Hayı |
| Security | Simetrik, Asimetrik, Transport-Level | Hayı |
| Şekil Değişikliği | CompositeDuplexBindingElement | Hayı |
| Aktarım Yükseltmeleri | SSL akışı, Windows akışı, Eş Çözümleyici | Hayı |
| Encoding | Metin, İkili, MTOM, Özel | Yes |
| Transport | TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ'nun çeşitleri, Özel | Yes |
Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tanımlı katmanlardan herhangi biri 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.