我有一个wcf操作,它将字节数组发送到客户端。
我打算发送的字节数组的最大大小是2mb。所以我在服务器上使用transfermode = buffered进行basichttpbinding时,将maxbuffersize和maxreceivedmessagesize设置为2097152(2 mb)。
尽管有这些设置,如果我传输一个17mb的文件,没有抛出缓冲区溢出异常?
感谢。
答案 0 :(得分:1)
<强>更新强>
我对WCF缓冲的理解以及各种值的影响是错误的。有关WCF缓冲区管理的详细信息,请查看此MSDN thread和此related blog post。
但是,我仍然无法找到关于如何限制服务器上的缓冲区的明确答案。根据我的理解,如果你在服务器端限制maxBufferPoolSize
(所有缓冲池的总数)和maxBufferSize
(单个缓冲区的最大大小),你应该能够实现你的目标我正试图这样做。
因此,在您的情况下,您应该在服务器上将maxBufferSize
设置为2mb,并在服务器上将maxBufferPoolSize
设置为2mb或更多。在客户端上,将maxReceivedMessageSize
也设置为2mb。