2009-06-17 14 views
34

Ich habe festgestellt, dass 2147483647 eine beliebte Wahl für maxReceivedMessageSize scheint, aber ist das das Limit?In welcher maximalen Größe kann maxReceivedMessageSize für NetNamedPipeBinding festgelegt werden?

+3

Auf der anderen Seite wollen Sie vielleicht, dass sie nur die berücksichtigen 2 GB Nachrichtengröße bedeuten, dass Ihr WCF-Server möglicherweise mehrere Nachrichten mit einer Größe von bis zu 2 GB gleichzeitig verarbeiten muss - kann er das tun? Marc –

+0

Es ist, wenn Sie ein 32-Bit-Server ... – Chad

Antwort

38

Nö, ist die Grenze Int64.MaxValue1 das ist: 9223372036854775807

+0

Große Artikel Dank – Nick

+7

In der web.config-Datei nur die Int32-Grenze scheint zu funktionieren. Vielleicht ist es ein Parsing-Problem. – marsze

+0

Wenn ich diesen Wert durch Code setze, bekomme ich eine 'ArgumentOutOfRange' Ausnahme für diesen Parameter. – BartoszKP

1

MaxReceivedMessageSize und MaxBufferSize muss denselben Wert und MaxBufferSizeInt32 ist.

+10

Nicht wahr - MaxBufferSize wird nur verwendet, wenn Sie Pufferung verwenden. Wenn Sie Streaming verwenden, wird es ignoriert. Aus diesem Grund ist MaxReceivedMessageSize Int64 und kann sich von MaxBufferSize unterscheiden. –

+0

Meinst du maxBufferPoolSize und maxReceivedMessageSize? – Gary

+0

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

8

MaxMessageReceivedSize in Basichttpbinding erscheint ein int32 zu sein - es ist über den Maximalwert eines int32 Ergebnis bei der Einrichtung:

Diese Fabrik puffert Nachrichten, so dass die Nachrichtengrößen im Bereich von einem ganzzahligen Wert sein muss. Parametername: bindingElement.MaxReceivedMessageSize

+0

Nein, es ist Int64 (lang): http://msdn.microsoft. com/en-us/library/system.servicemodel.basichttpbinding.maxreceivedmessagesize% 28v = VS.100% 29.ASPX –

+0

@ D-Money - ich vermute, es hängt von dem Server ... – Chad

0

die Standardeinstellungen verwenden für die maximale Größe so ein nicht Fett Finger Wert:

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

Wie Sie dies tun in der web.config? – Zesty