代码之家  ›  专栏  ›  技术社区  ›  Urs Meili

WCF NetTcp绑定-将传输模式从缓冲更改为流

  •  0
  • Urs Meili  · 技术社区  · 6 年前

    我们有一个WCF自托管服务器和几个Winforms和Web客户端,所有这些都使用带有TransferMode=Buffered的NetTcp绑定。我们有各种各样的DataContract,使用了许多以任意对象为参数的方法。

    我们现在必须实现一个接受流作为参数的服务。如果我将服务器和客户端上的TransferMode更改为“流”,这会破坏现有合同吗?或者,它们的行为是否与以前一样,也就是说,只要没有传递类型为“Stream”的参数,它们就使用缓冲模式?

    快速冒烟测试似乎是这样的(应用程序的行为与以前一样),但我需要确保没有我可能监督的后果。

    谢谢你的建议!

    1 回复  |  直到 6 年前
        1
  •  0
  •   MaRuf    6 年前

    仅仅将传输模式从缓冲更改为流传输不会破坏合同,它只会影响您的绑定。

    基本上是TrasferMode 缓冲的 将在将数据发送到另一个端点之前在内存中加载所有数据 流式传输 将在数据块准备好后立即开始发送,并将减少发送大量字节所需的内存量。

    在这里,您可以看到一些使用流式消息的限制,但据我所知,这不应影响您当前的情况

    https://blogs.msdn.microsoft.com/drnick/2006/03/31/how-to-enabling-streaming/