<wsDualHttpBinding>
<wsDualHttpBinding>
<binding name="string"
closeTimeout="TimeSpan"
openTimeout="TimeSpan"
receiveTimeout="TimeSpan"
sendTimeout="TimeSpan"
bypassProxyOnLocal="Boolean"
clientBaseAddress="URI"
transactionFlow="Boolean"
hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
maxBufferPoolSize="integer"
maxReceivedMessageSize="Integer"
messageEncoding="Text/Mtom"
proxyAddress="URI"
textEncoding="Unicode/BigEndianUnicode/UTF8"
useDefaultWebProxy="Boolean">
<reliableSession ordered="Boolean"
inactivityTimeout="TimeSpan" />
<security mode="None/Message">
<message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
negotiateServiceCredential="Boolean"
algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
</security>
<readerQuotas maxDepth="integer"
maxStringContentLength="integer"
maxByteArrayContentLength="integer"
maxBytesPerRead="integer"
maxNameTableCharCount="integer" />
</binding>
</wsDualHttpBinding>
- WSDualHttpBinding 除了使用了原來在 BasicHttpBinding 所使用的 TextMessageEncodingBindingElement 與 HttpTransportBindingElement 這兩個 binding element,也使用了 TransactionFlowBindingElement。
- 使用 CompositeDuplexBindingElement, 讓 Client 可以 callback (回呼)。為了讓 Client 可以回呼, WSDualHttpBinding 是一個雙通道的 Binding,除了一般由 Client 傳送訊息給 Service 的通道(Channel)外,另外建立一個讓Service傳送訊息給Client 的通道。
- 一個 Service 通常有多個 Client 會使用該Service。WSDualHttpBinding 為了回呼Client,必須保持每個 Client 的資訊,因此需要維護 Session。此時引入了ReliableSessionBindingElement。
沒有留言:
張貼留言