我遇到了一个异常,因为我从 WCF 服务器传输到客户端的数据的消息大小和/或数组长度超过了最大大小。这个话题经常出现,但大多数解决方案都是关于更改服务绑定的 MaxReceivedMessageSize。
var binding = new WSHttpBinding { MaxReceivedMessageSize = int.MaxValue };
binding.ReaderQuotas.MaxArrayLength = int.MaxValue;
host.AddServiceEndpoint(typeof(IEditor), binding, uri);
但我很感兴趣如何以不同的方式解决这个问题。考虑以下方法。它可能会导致一个大字节数组。我还尝试将图像转换为 Base64String。
[ServiceContract]
public interface IEditor
{
[OperationContract]
byte[] GetImage();
}
是否有使用BeginRead/EndRead将字节数组以较小的块流式传输到客户端的常见模式?你会如何在代码中做到这一点?