帮助选择绑定(WCF)

时间:2011-02-20 21:02:23

标签: .net wcf binding streaming wcf-binding

我需要创建WCF应用程序,它将处理图片。它允许您将图片作为流获取,并将图片发送到服务器(作为流)。它将在流传输模式下工作。目前我对这个选择犹豫不决。 BasicHttpBinding还是NetTcpBinding?它们之间有什么区别?的优点和缺点。哪个更适合这个问题?

2 个答案:

答案 0 :(得分:5)

查看this blog post(或许多其他类似的)

选择正确装订的图表来自Juval Lowy的书Programming WCF Services 并给出了最好的指导,真的:

enter image description here

现在你对流媒体的额外要求限制了选择的数量,显然 - net.msmq显然是不可能的。

basicHttpBindingnetTcpBindingnetNamedPipesBinding支持流式传输。最后一个可能也是不可能的,因为它只能在同一台机器上工作(客户端和服务器)。

因此,选择真的归结为basicHttpBindingnetTcpBinding。 basicHttp适用于http连接和端口80,因此它非常适合互联网和“向公众开放”场景,而netTcp可能更快,但它需要特定的端口,需要在服务器和/或防火墙上打开 - 所以它可能更适合企业局域网环境,但不适用于一般的互联网本身。

在非常具体的情况下可能会考虑其他绑定,例如:如果你正在进入云端,你可能想调查Relay绑定,如果你正在研究联邦安全性,你可能想要联合绑定 - 但是当涉及到流媒体时,这些并不适用于此。

答案 1 :(得分:2)

如果您没有非常大的流,则流式响应模式不是最佳模式。假如你的图片只有几KB或甚至高达100KB,那么使用缓冲的transferMode可能会更好。 您可以拥有流合同和缓冲传输模式,其中整个数据实际上是缓冲的,但数据协定使您可以像流一样访问它。