为什么wsHttpBinding不支持流媒体?
编辑:为了测试我对netTcpBinding的评论,我尝试了下面的代码,它给出了运行时错误:
<netTcpBinding >
<binding name="myBinding" transferMode="Streamed">
<reliableSession enabled="true"/>
</binding>
</netTcpBinding>
运行时异常:
Unhandled Exception: System.InvalidOperationException: Transfer mode Streamed is
not supported by ReliableSessionBindingElement.
at System.ServiceModel.Channels.ReliableSessionBindingElement.VerifyTransport
Mode(BindingContext context)
如果删除了<reliableSession enabled="true"/>
,则代码可以正常运行。
答案 0 :(得分:12)
WsHttpBinding不支持 流媒体由于可靠 消息传递协议(WS-RM),其中 要求缓冲消息 两端。
还有另一篇帖子here提供了不能够与上述原因进行比较的推理......
这是因为WS-RM需要申请 签署/校验和整个消息 作为一个团结等;而事实并非如此 流式传输模式时可能, 只有缓冲的transferMode ...
此外,netTcpBinding实际上使用WS-RM来实现可靠性。