2010-12-10 12 views
10

Neden wsHttpBinding destek akışını vermiyor?Neden wsHttpBinding destek akışını desteklemiyor?

DÜZENLEME:

<netTcpBinding > 
     <binding name="myBinding" transferMode="Streamed">   
      <reliableSession enabled="true"/> 
     </binding> 
</netTcpBinding> 

Süre istisna:

Unhandled Exception: System.InvalidOperationException: Transfer mode Streamed is 
not supported by ReliableSessionBindingElement. 
    at System.ServiceModel.Channels.ReliableSessionBindingElement.VerifyTransport 
Mode(BindingContext context) 

kaldırılır <reliableSession enabled="true"/> eğer, kod çalışır NetTcpBinding hakkında yorumumu test etmek için, ben çalışma zamanı hatası veren aşağıdaki kodu çalıştı.

+2

Çünkü bunu tasarlamadılar. –

cevap

12

WsHttpBinding doesn't support streaming due to the reliable messaging protocol (WS-RM), which requires that messages are buffered on either end.

olarak here ... Daha fazla bilgi hakkında WS-RM belirtti.

da güvenilirlik amaçlı WS-RM neden yukarıda ... Ayrıca netTcpBinding yılında

This is because WS-RM needs to apply signing/checksums to the whole message as a unity, etc; and this is not possible when streamed transferMode, only with buffered transferMode...

aslında kılan kullanıma karşı akarsu edememek değil için akıl sağlayan başka sonrası here yoktur.

+1

teşekkürler. WS-RM'nin neden mesajların tamponlanmasını gerektirdiği konusunda bir fikrin var mı? NetTcpBinding hem güvenilirlik hem de akış sunuyor, bu yüzden güvenilirliğin akışını engellemediğini tahmin ediyorum. – morpheus

+0

@morpheus Ek yorum eklendi ... –

İlgili konular