<customBinding>
사용자에게 메시징 스택에 대한 모든 권한을 제공합니다.
<system.serviceModel>
<bindings>
<customBinding>
<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
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=" SymmeticKey/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>
특성 및 요소
특성
특성 | 설명 |
---|---|
closeTimeout |
닫기 작업을 완료하기 위해 제공된 시간 간격을 지정하는 TimeSpan 값입니다. 이 값은 Zero보다 크거나 같아야 합니다. 기본값은 00:01:00입니다. |
name |
바인딩의 구성 이름을 포함하는 문자열입니다. 이 값은 사용자 지정 바인딩의 식별 문자열 역할을 하는 사용자 정의 문자열입니다. |
openTimeout |
열기 작업을 완료하기 위해 제공된 시간 간격을 지정하는 TimeSpan 값입니다. 이 값은 Zero보다 크거나 같아야 합니다. 기본값은 00:01:00입니다. |
receiveTimeout |
받기 작업을 완료하기 위해 제공된 시간 간격을 지정하는 TimeSpan 값입니다. 이 값은 Zero보다 크거나 같아야 합니다. 기본값은 00:01:00입니다. |
sendTimeout |
보내기 작업을 완료하기 위해 제공된 시간 간격을 지정하는 TimeSpan 값입니다. 이 값은 Zero보다 크거나 같아야 합니다. 기본값은 00:01:00입니다. |
자식 요소
요소 | 설명 |
---|---|
사용자 지정 바인딩에 대한 양방향 메시징을 정의합니다. 예를 들어, HTTP와 같이 원래는 이중 통신을 허용하지 않는 전송에 사용됩니다. 그에 반해 TCP는 본래 이중 통신을 허용하므로, 이 바인딩 요소를 사용하지 않더라도 서비스에서 클라이언트로 회신 메시지를 보낼 수 있습니다. 서비스에서 접속하여 연결을 설정하려면 클라이언트가 주소를 공개해야 합니다. 이 클라이언트 주소는 ClientBaseAddress 특성을 사용하여 제공합니다. 이 요소는 CompositeDuplexElement 형식입니다. |
|
PNRP(피어 이름 확인 프로토콜) 피어 이름 확인자를 지정합니다. 이 요소는 PnrpPeerResolverElement 형식입니다. |
|
WS-Reliable Messaging 설정을 지정합니다. 이 요소가 사용자 지정 바인딩에 추가되면 그 결과로 만들어지는 채널에서 EOD(Exactly-Once Delivery) 보증을 지원할 수 있습니다. 이 요소는 ReliableSessionElement 형식입니다. |
|
사용자 지정 바인딩에 대한 보안 옵션을 지정합니다. 이 요소는 SecurityElement 형식입니다. |
|
SSL 스트림 바인딩에 대한 보안 설정을 지정합니다. 이 요소는 SslStreamSecurityElement 형식입니다. |
|
바인딩이 트랜잭션 흐름 및 transactionProtocol 특성에 사용될 프로토콜을 지원하도록 지정합니다. 이 요소는 TransactionFlowElement 형식입니다. |
|
사용자 지정 바인딩에 대한 스트리밍 보안 옵션을 지정합니다. 이 요소는 WindowsStreamSecurityElement 형식입니다. |
부모 요소
요소 | 설명 |
---|---|
bindings |
Windows Communication Foundation 응용 프로그램에 대한 모든 바인딩을 포함합니다. |
설명
사용자 지정 바인딩을 사용하면 WCF 메시징 스택을 완전히 제어할 수 있습니다. 특정 엔터티의 구성 요소를 추가하여 특수하게 조정된 바인딩을 만들 수 있습니다. 예를 들어, 사용자는 httpsTransport 섹션, reliableSession 섹션 및 security 섹션을 결합하여 믿을 수 있으며 안전한 https 기반 바인딩을 만들 수 있습니다.
개별 바인딩에서는 스택에 나타나는 순서대로 스택 요소의 구성 요소를 지정함으로써 메시지 스택을 정의합니다. 각 요소는 스택 중 하나의 요소를 정의하고 구성합니다. 각 사용자 지정 바인딩에는 단 한 개의 전송 요소가 있어야 합니다. 이 요소가 없으면 메시징 스택이 완전하지 않습니다.
스택에서 요소가 나타나는 순서는 작업이 메시지에 적용되는 순서이므로 중요합니다. 다음과 같은 스택 요소 순서를 사용하는 것이 좋습니다.
- 트랜잭션(선택적)
- 신뢰할 수 있는 메시징(선택적)
- 보안(선택적)
- 전송
- 인코더(선택적)
시스템에서 제공하는 바인딩 중 하나가 사용자의 서비스 요구 사항을 충족하지 않을 때 사용자 지정 바인딩을 사용하십시오. 사용자 지정 바인딩을 사용하면 예를 들어 서비스 끝점에서 새 전송 또는 새 인코더 사용을 활성화할 수 있습니다.
사용자 지정 바인딩은 특정 순서로 "스택"되는 바인딩 요소 컬렉션에서 CustomBinding 중 하나를 사용하여 생성됩니다.
- 맨 위에는 트랜잭션 이동을 허용하는 선택적 TransactionFlowBindingElement가 있습니다.
- 다음에는 WS-ReliableMessaging 사양에서 정의된 세션 및 순서 지정 메커니즘을 제공하는 선택적 ReliableSessionBindingElement가 있습니다. 이 세션 개념은 SOAP 매개자 및 전송 매개자에 적용될 수 있습니다.
- 다음에는 권한 부여, 인증, 보호, 기밀성과 같은 보안 기능을 제공하는 선택적 보안 바인딩 요소가 있습니다. 다음과 같은 보안 바인딩 요소가 WCF(Windows Communication Foundation)에서 제공됩니다.
- 다음에는 바인딩 요소에서 지정되는 선택적 메시지 패턴이 있습니다.
- CompositeDuplexBindingElement
- 다음에는 선택적 전송 업그레이드/도우미 바인딩 요소가 있습니다.
- 다음에는 필수 메시지 인코딩 바인딩 요소가 있습니다. 고유의 전송을 사용하거나 다음 메시지 인코딩 바인딩 중 하나를 사용할 수 있습니다.
- 맨 아래에는 필수 전송 요소가 있습니다. 고유의 전송을 사용하거나 WCF(Windows Communication Foundation)에서 제공된 전송 바인딩 요소 중 하나를 사용할 수 있습니다.
다음 표에서는 각 계층의 옵션을 요약합니다.
계층 | 옵션 | 필수 |
---|---|---|
Transaction Flow |
TransactionFlowBindingElement |
아니요 |
Reliability |
ReliableSessionBindingElement |
아니요 |
보안 |
대칭, 비대칭, 전송 수준 |
아니요 |
Shape Change |
CompositeDuplexBindingElement |
아니요 |
Transport Upgrades |
SSL 스트림, Windows 스트림, 피어 확인자 |
아니요 |
Encoding |
텍스트, 이진, MTOM, 사용자 지정 |
예 |
Transport |
TCP, 명명된 파이프, HTTP, HTTPS, MSMQ 버전, 사용자 지정 |
예 |
또한 고유의 바인딩 요소를 정의하여 정의된 이전 계층 사이에 삽입할 수 있습니다.
사용자 지정 바인딩을 사용하여 시스템 제공 바인딩을 수정하는 방법에 대한 자세한 내용은 How To: Customize a System-Provided Binding을 참조하십시오.
1.
참고 항목
참조
<customBinding>
Binding
BindingElement
BindingsSection
CustomBinding
개념
기타 리소스
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients