Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет полный контроль над стеком обмена сообщениями для пользователя.
<configuration>
<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>
<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>
Атрибуты и элементы
В следующих разделах описаны атрибуты, дочерние элементы и родительские элементы
Attributes
| Свойство | Description |
|---|---|
| closeTimeout | TimeSpan Значение, указывающее интервал времени, предоставленный для завершения операции закрытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00. |
| имя | Строка, содержащая имя конфигурации привязки. Это значение является определяемой пользователем строкой, которая выступает в качестве строки идентификации для пользовательской привязки. Начиная с .NET Framework 4 привязки и поведение не требуются для имени. Дополнительные сведения о конфигурации по умолчанию и безымяных привязках и поведении см. в статье "Упрощенная конфигурация " и "Упрощенная конфигурация" для служб WCF. |
| openTimeout | TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции открытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00. |
| receiveTimeout | TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции получения. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00. |
| sendTimeout | TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции отправки. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00. |
Дочерние элементы
| Элемент | Description |
|---|---|
| <составнойduplex> | Задает двустороннее обмен сообщениями в настраиваемую привязку. Он используется с транспортами, которые не разрешают дуплексное взаимодействие в собственном коде, например HTTP. TCP, напротив, разрешает дуплексное взаимодействие в собственном коде и не требует использования этого элемента привязки для службы для отправки сообщений клиенту. Клиент должен предоставить адрес для службы, чтобы связаться и установить подключение. Этот адрес клиента предоставляется атрибутом ClientBaseAddress .Этот элемент имеет тип CompositeDuplexElement. |
| <pnrpPeerResolver> | Указывает сопоставитель имен однорангового узла (PNRP). Этот элемент имеет тип PnrpPeerResolverElement. |
| <reliableSession> | Задает параметр для обмена сообщениями WS-Reliable. При добавлении этого элемента в пользовательскую привязку результирующий канал может поддерживать точно один раз гарантии доставки. Этот элемент имеет тип ReliableSessionElement. |
| <безопасность> | Задает параметры безопасности пользовательской привязки. Этот элемент имеет тип SecurityElement. |
| <sslStreamSecurity> | Задает параметры безопасности для привязки SSL-потока. Этот элемент имеет тип SslStreamSecurityElement. |
| <transactionFlow> | Указывает, что привязка поддерживает поток транзакций и протокол, используемый атрибутом transactionProtocol . Этот элемент имеет тип TransactionFlowElement. |
| <windowsStreamSecurity> | Задает параметры для обеспечения безопасности потоковой передачи пользовательской привязки. Этот элемент имеет тип WindowsStreamSecurityElement. |
Родительские элементы
| Элемент | Description |
|---|---|
| bindings | Содержит все привязки для приложений Windows Communication Foundation. |
Замечания
Пользовательские привязки обеспечивают полный контроль над стеком обмена сообщениями WCF. Специальные специализированные привязки можно создать при добавлении элементов конфигурации для определенных сущностей. Например, пользователь может объединить httpsTransport раздел, reliableSession раздел и раздел, чтобы создать надежную и security безопасную привязку на основе https.
Отдельная привязка определяет стек сообщений, указав элементы конфигурации для элементов стека в том порядке, в который они отображаются в стеке. Каждый элемент определяет и настраивает один элемент стека. В каждой пользовательской привязке должен быть один и только один транспортный элемент. Без этого элемента стек обмена сообщениями является неполным.
Порядок отображения элементов в стеке имеет значение, так как это порядок применения операций к сообщению. Рекомендуемый порядок элементов стека приведен ниже.
Транзакции (необязательно)
Надежный обмен сообщениями (необязательно)
Безопасность (необязательно)
Transport
Кодировщик (необязательно)
Используйте пользовательскую привязку, если одна из системных привязок не соответствует требованиям службы. Пользовательская привязка может использоваться, например, для включения использования нового транспорта или нового кодировщика в конечной точке службы.
Пользовательская привязка создается с помощью одной из CustomBinding коллекции элементов привязки, которые "стекаются" в определенном порядке:
В верхней части является необязательным TransactionFlowBindingElement , который позволяет выполнять потоки транзакций.
Далее является необязательным ReliableSessionBindingElement , который предоставляет механизм сеанса и упорядочивания, как определено в спецификации WS-ReliableMessaging. Это понятие сеанса может пересекать посредники SOAP и транспорта.
Далее — это необязательный элемент привязки безопасности, который предоставляет такие функции безопасности, как авторизация, проверка подлинности, защита и конфиденциальность. Следующие элементы привязки безопасности предоставляются Windows Communication Foundation (WCF):
Далее приведены необязательные шаблоны сообщений, указанные элементами привязки:
Далее приведены необязательные элементы привязки транспортных обновлений и вспомогательных элементов:
Далее — обязательный элемент привязки кодирования сообщений. Вы можете использовать собственный транспорт или использовать одну из следующих привязок кодирования сообщений:
Внизу является обязательным элементом транспорта. Вы можете использовать собственный транспорт или использовать один из элементов привязки транспорта, предоставляемых Windows Communication Foundation (WCF):
В следующей таблице перечислены параметры каждого слоя.
| Уровень | Options | Обязательно |
|---|---|---|
| Поток транзакций | TransactionFlowBindingElement | нет |
| Reliability | ReliableSessionBindingElement | нет |
| Безопасность | Симметричная, асимметричная, Transport-Level | нет |
| Изменение фигуры | CompositeDuplexBindingElement | нет |
| Обновления транспорта | SSL-поток, поток Windows, одноранговый сопоставитель | нет |
| Кодировка | Текст, бинарный, MTOM, пользовательский | Да |
| Transport | TCP, именованные каналы, HTTP, HTTPS, вкусы MSMQ, Custom | Да |
Кроме того, можно определить собственные элементы привязки и вставить их между любым из предыдущих определенных слоев.
Сведения о том, как использовать пользовательскую привязку для изменения предоставленной системой привязки, см. в статье "Практическое руководство. Настройка привязки System-Provided".