即使maxBufferSize值小于WCF中的响应消息大小,也不会抛出异常

时间:2009-12-12 03:45:26

标签: wcf wcf-binding

我有一个wcf操作,它将字节数组发送到客户端。

我打算发送的字节数组的最大大小是2mb。所以我在服务器上使用transfermode = buffered进行basichttpbinding时,将maxbuffersize和maxreceivedmessagesize设置为2097152(2 mb)。

尽管有这些设置,如果我传输一个17mb的文件,没有抛出缓冲区溢出异常?

感谢。

1 个答案:

答案 0 :(得分:1)

<强>更新
我对WCF缓冲的理解以及各种值的影响是错误的。有关WCF缓冲区管理的详细信息,请查看此MSDN thread和此related blog post

但是,我仍然无法找到关于如何限制服务器上的缓冲区的明确答案。根据我的理解,如果你在服务器端限制maxBufferPoolSize(所有缓冲池的总数)和maxBufferSize(单个缓冲区的最大大小),你应该能够实现你的目标我正试图这样做。

因此,在您的情况下,您应该在服务器上将maxBufferSize设置为2mb,并在服务器上将maxBufferPoolSize设置为2mb或更多。在客户端上,将maxReceivedMessageSize也设置为2mb。