Ok Thanks

It would be nice to know what they actually do and what behaviour they alter.

If you have maxed out the attribute values and have left maxBytesPerRead as the default, I would guess its impact at a performance level with the size of network IO requests. Increase the value for faster throughput at the expense of memory consumption. But that's only an educated guess.

I need to transfer files that are are statistically around 4-8 K in size with some outliers being up to 10 to 20 times this.

My main concern is that we have lots of clients downloading and I would rather keep any memory allocation to a minimum as the server is not that well spec'ed (and is quite old to boot)

Regards Peter


On 31/01/2011 5:09 PM, Wallace Turner wrote:
Hi Peter, I looked into this a while ago and whilst the details escape me, the config I settled on was the following:


<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647"/>

Empirically, this allowed me to send large amounts of data over the network. Note, attributes not listed are assuming the default.
Sry can't provide more info or answers to those specific fields.



On 31/01/2011 3:36 PM, Peter Maddin wrote:
I am looking at writing a WCF web service to transfer files but I am not sure of some of the binding attributes of the readerQuotas element. If I send binary files I presume with a basicHttpBinding that Soap 1.1 will be used and the content will be base64 encoded. This bulks up the data transferred.

You can get an idea from http://msdn.microsoft.com/en-us/library/ms731325.aspx. The details provided are not very explanatory. Some examples would have been nice as to where to change these attributes and why one should and what the effect would be.

I looked at Programming WCF Services by Juval Lowy and it does not mention this element. I think my copy is now out of date.

Attribute       Description

maxArrayLength

        

A positive integer that specifies the maximum allowed array length of data being received by Windows Communication Foundation (WCF) from a client. The default is 16384. OK this sounds clear enough (I hope)

maxBytesPerRead

        

A positive integer that specifies the maximum allowed bytes returned per read. The default is 4096. Is this something one needs to adjust for performance reasons or does it impact on the amount of data one is trying to transfer (I would have though maxStringContentLength and maxReceivedMessageSize would be where one needs to adjust things). What does this attribute actually do?

maxDepth

        

A positive integer that specifies the maximum nested node depth per read. The default is 32.

Is this something to be aware of when defining ones DataContracts or is it for something else.

maxNameTableCharCount

        

A positive integer that specifies the maximum characters allowed in a table name. The default is 16384.

If one is not passing a table I guess this does not matter

maxStringContentLength

        

A positive integer that specifies the maximum characters allowed in XML element content. The default is 8192. Is this some needs to be aware of if one is using basicHttpBinding and the content is base64 encoded, must one make an allowance for the extra bloat?


Regards Peter


--
Wallace Turner | General Manager IT
FEX | ? 61 2 8024 5200 ?  61 2 8024 5234 | | [email protected]  
?www.fex.com.au


This correspondence is for the named person's use only. It may contain 
confidential or legally privileged information or both.
No confidentiality or privilege is waived or lost by any mistransmission. If 
you receive this correspondence in error, please
immediately delete it from your system and notify the sender. You must not 
disclose, copy or rely on any part of this
correspondence if you are not the intended recipient.

Reply via email to