帮助选择一个绑定(WCF)

3

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

2个回答

5
请看这篇博客文章(或者其他类似的文章)。
选择适当绑定的图示来自Juval Lowy的书Programming WCF Services,并提供了最佳指导: enter image description here 现在,您对流式传输的附加要求显然限制了选择的数量——net.msmq显然不可能。
流式传输由basicHttpBindingnetTcpBindingnetNamedPipesBinding支持。最后一个可能也不可能,因为它只能在同一台机器上运行(客户端和服务器)。
因此,选择真正取决于basicHttpBinding vs. netTcpBinding。基本的HTTP工作在HTTP连接和端口80上,所以它非常适合互联网和“向公众开放”的场景,而netTcp可能会快一点,但它需要特定的端口,在服务器和/或防火墙上需要打开这些端口,因此它可能更适合企业LAN环境,但不是针对普通互联网本身。
在非常特定的场景下,可能需要考虑其他绑定,例如,如果您要进入云,则可能需要调查Relay绑定;如果您正在研究联合安全性,则可能需要考虑联合绑定——但是,当涉及流式传输时,这些不会真正适用。

2
我认为这个问题可能应该成为标准的“如何选择WCF绑定”的问题。我会尝试记住将其他问题关闭为此问题的副本。 - John Saunders

2

如果你没有非常大的流数据,那么流响应模式不是最佳选择。假设你的图片只有几KB或者最多100KB,使用缓冲传输模式可能更好。你可以使用流契约和缓存传输模式,整个数据实际上都被缓冲了,但数据契约使你可以像使用流一样访问它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接