我有一个WCF服务端点,它通过流服务二进制文档。端点看起来如下所示:
public Stream GetFile(int fileId){
...
}
此服务端点的basicHttpBinding被错误地配置为使用TransferMode=“缓冲”。服务端点目前由集成我无法控制的各方使用。由于缓冲传输模式的内存消耗问题,我想将其更改为TransferMode=“流”。
我能否安全地对服务绑定配置进行此更改,并期望这不会对任何集成方造成任何破坏?
发布于 2014-05-22 10:55:53
据我所知,WCF流模式传输在客户机上是可选的,这意味着即使您在服务器上更改它,除非客户端也更改了它们的末端,否则在作为缓冲的数据块服务之前,它们仍然会接收整个流。换句话说,它应该对您的客户是透明的,但它将使他们能够选择一个流响应。
发布于 2018-09-10 06:42:59
微软官方文档在这个问题上确认它是被选择的,并且不影响功能,这意味着它不应该是一个突破性的改变。
“在不影响功能的情况下,您可以在通信方的任何一方独立地为请求和回复或双向打开流。然而,您应该始终假定传输的数据大小非常重要,因此在通信链路的两个端点上启用流是合理的。对于跨平台通信,如果其中一个端点不是用WCF实现的,那么使用流的能力取决于平台的流功能。”
https://stackoverflow.com/questions/23670270
复制相似问题