【问题标题】:Help to choose a binding(WCF)帮助选择绑定(WCF)
【发布时间】:2011-06-30 21:45:11
【问题描述】:

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

【问题讨论】:

    标签: .net wcf binding streaming wcf-binding


    【解决方案1】:

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

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

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

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

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

    在非常具体的场景中可能会考虑其他绑定,例如如果您要迁移到云中,您可能想调查 Relay 绑定,如果您正在研究联合安全性,则可能需要调查联邦绑定 - 但这些在流式传输方面并不真正适用。

    【讨论】:

    • 我认为这个问题可能应该是规范的“如何选择 WCF 绑定”问题。我会尽量记住关闭其他人作为此人的副本。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2011-08-27
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      相关资源
      最近更新 更多