我有一个WCF服务端点,通过流提供二进制文档。端点看起来像这样:
public Stream GetFile(int fileId){
...
}
此服务端点的basicHttpBinding被错误地配置为使用TransferMode =" Buffered"。服务端点当前由我控制之外的各方使用。由于缓冲传输模式的内存消耗问题,我想将其更改为TransferMode =" Streamed"。
我是否可以安全地对服务绑定配置进行此更改,并期望这不会破坏任何集成方的任何内容?
答案 0 :(得分:5)
据我所知,WCF流模式传输是在客户端选择加入,这意味着即使您在服务器上更改它,除非客户端更改其结束,否则它们仍会在其中接收流在将其作为缓冲数据块提供之前的整体。换句话说,它应该对您的客户透明,但会使他们选择加入流式响应。
答案 1 :(得分:0)
Official Microsoft documentation对此事进行了确认,表明它已选择加入并且不影响功能,这意味着这不应是一项重大更改。
“您可以在通信双方的任何一侧独立地打开请求和答复或双向的流传输,而不会影响功能。但是,您始终应假定传输的数据量如此之大,以至于在两个方向上启用流传输都是合理的对于没有使用WCF实现端点之一的跨平台通信,使用流传输的能力取决于平台的流传输能力。