正在从wcf binding transferMode更改为"Buffered"“;Streamed

本文关键字:quot Buffered Streamed wcf binding transferMode | 更新日期: 2023-09-27 18:03:21

我有一个通过流提供二进制文档的WCF服务端点。端点看起来像这样:

public Stream GetFile(int fileId){
...
}

这个服务端点的basicHttpBinding被错误地配置为使用TransferMode=" buffers "。服务端点目前由我控制之外的集成方使用。由于缓冲传输模式的内存消耗问题,我想将其更改为transfermode ="流式传输"。

我是否可以安全地对服务绑定配置进行此更改,并期望这不会破坏任何集成方的任何内容?

正在从wcf binding transferMode更改为"Buffered"“;Streamed

据我所知,WCF流模式传输在客户端是可选的,这意味着即使你在服务器端改变了它,除非客户端也改变了他们的端,他们仍然会在将其作为缓冲数据块服务之前完整地接收流。换句话说,它应该对您的客户端透明,但将使他们能够选择加入流响应。

关于此事的微软官方文档确认这是可选的,不影响功能,这意味着它不应该是一个突破性的变化。

"你可以在不影响功能的情况下,在通信双方的任何一方独立地打开请求和回复或两个方向的流。但是,您应该始终假设传输的数据大小非常大,以至于在通信链路的两个端点上启用流是合理的。对于没有使用WCF实现其中一个端点的跨平台通信,使用流的能力取决于平台的流功能。"