2009-06-17 13 views
34

Ho notato che 2147483647 sembra essere una scelta popolare per maxReceivedMessageSize ma è questo il limite?Qual è la dimensione massima a cui maxReceivedMessageSize può essere impostata per un NetNamedPipeBinding?

+3

D'altra parte, si potrebbe prendere in considerazione che impostandolo 2 GB di dimensione del messaggio significa che il tuo server WCF avrà potenzialmente a che fare con diversi messaggi fino a 2 GB di dimensioni contemporaneamente - può farlo ?? Marc –

+0

È se si dispone di un server a 32 bit ... – Chad

risposta

38

No, il limite è Int64.MaxValue1 che è: 9223372036854775807

+0

Grande articolo grazie – Nick

+7

Nel file web.config, solo il limite Int32 sembra funzionare. Forse è un problema di analisi. – marsze

+0

Quando si imposta questo valore tramite codice ottengo l'eccezione 'ArgumentOutOfRange' per questo parametro. – BartoszKP

1

MaxReceivedMessageSize e MaxBufferSize mosto stesso valore e MaxBufferSize è Int32.

+10

Non vero - MaxBufferSize viene utilizzato solo se si utilizza il buffering. Se si utilizza lo streaming, viene ignorato. Questo è il motivo per cui MaxReceivedMessageSize è Int64 e può essere diverso da MaxBufferSize. –

+0

Intendi maxBufferPoolSize e maxReceivedMessageSize? – Gary

+0

BasicHttpBinding MaxBufferSize è Int32, ma MaxReceivedMessageSize è Int64. http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpbinding.maxbuffersize%28v=vs.100%29.aspx –

8

MaxMessageReceivedSize in basicHttpBinding sembra essere un Int32 - l'impostazione sopra il valore massimo di un Int32 risultati in:

Questa fabbrica tamponi messaggi, in modo che le dimensioni dei messaggi devono essere nel range di un valore intero. Nome parametro: bindingElement.MaxReceivedMessageSize

+0

No, è Int64 (lungo): http://msdn.microsoft. it/it/us/library/system.servicemodel.basichttpbinding.maxreceivedmessagesize% 28v = vs.100% 29.ASPX –

+0

@ D-Money - Suppongo che dipenda dal server ... – Chad

0

utilizzare le impostazioni predefinite per la dimensione massima così uno non dito grasso un valore:

binding.MaxBufferSize   = int.MaxValue; 
binding.MaxReceivedMessageSize = long.MaxValue; 
+1

Come si fa nel web.config? – Zesty

Problemi correlati