.net - 帮助选择绑定(bind)(WCF)

标签 .net wcf binding streaming wcf-binding

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

最佳答案

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

选择正确绑定(bind)的图表来自 Juval Lowy 的书 Programming WCF Services 并给出最好的指导,真的:

enter image description here

现在您对流式传输的额外要求显然限制了选择的数量 - net.msmq 显然是不可能的。

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

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

在非常具体的情况下,可能会考虑其他绑定(bind),例如如果您要迁移到云中,您可能想研究中继绑定(bind);如果您正在研究联合安全性,则可能想研究联合绑定(bind)——但在流式传输方面,这些并不真正适用于此。

关于.net - 帮助选择绑定(bind)(WCF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059981/

相关文章:

c# - 具有两种方式数据绑定(bind)的 Winforms 文本框无法正常工作

c# - 如何检测鼠标滚轮倾斜?

.net - vb.net错误使用界面

c# - 可以在没有三角剖分的情况下伪造('Til You Make It)TDD 模式吗?

wcf - 强制 WCF 在反序列化期间使用现有缓冲区?

wcf - 控制使用 svcutil.exe 生成的 wcf 代理类名

c# - 并非 WCF 数据协定中的所有参数都通过 Web 服务调用

c# - 从 .Net Framework 4.7 升级到 4.8 后使用 MSBuild 发布项目时出错

docker - 将容器端口绑定(bind)到 Dockerfile 内的主机

javascript - 如何在 React 中实现搜索栏按钮和结果组件