Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In WCF, should you have large MaxBufferPoolSize value for large messages?

For this WCF service I have developed, I have to set MaxReceivedMessageSize to 5MB. My current problem is figuring out whether it is better to have a larger MaxBufferPoolSize value, like 5MB, or retain the original 512KB value.

Does anyone knows what is the recommended setting for this scenario?
In short, should I set MaxBufferPoolSize = 5242880 (5MB), or MaxBufferPoolSize = 524288 (512KB)?

UPDATE: For clarification, the service is meant to insert a new customer record along with some scanned documents. As a result, the message size may reached up to 5MB.

We could try and separate the upload of the scanned document using alternate technologies, but the requirement was both customer record and scanned documents must be in the same transaction, so we decided to go with this approach, until we figure out how to use WCF's transaction capability.

like image 543
alextansc Avatar asked Nov 28 '08 08:11

alextansc


2 Answers

Check out this article. http://kennyw.com/?p=51

It suggests setting the MaxBufferPoolSize to zero for large messages in order to avoid buffering.

like image 163
Doanair Avatar answered Nov 15 '22 12:11

Doanair


It is perfectly OK to transfer large amounts of data to a WCF-based service, but you should look into a binding that supports streaming instead of buffered transfers (BasicHttpBinding or a CustomBinding) so each service instance doesn't hog too much memory.

--larsw

like image 2
larsw Avatar answered Nov 15 '22 13:11

larsw