2009-06-17 5 views
34

Zauważyłem, że 2147483647 wydaje się być popularnym wyborem dla maxReceivedMessageSize, ale czy to jest limit?Jaki jest maksymalny rozmiar, który maxReceivedMessageSize może być ustawiony na NetNamedPipeBinding?

+3

Z drugiej strony, można uznać, że ustawienie jej na 2 GB rozmiaru wiadomości oznacza, że ​​serwer WCF będzie musiał jednocześnie obsługiwać kilka wiadomości o rozmiarze do 2 GB - czy może to zrobić? Marc –

+0

To jest, jeśli masz 32-bitowy serwer ... – Chad

Odpowiedz

38

Nie, limit wynosi Int64.MaxValue1 który jest: 9223372036854775807

+0

Świetny artykuł dzięki – Nick

+7

W pliku web.config wydaje się, że działa tylko limit Int32. Może to jest problem z parsowaniem. – marsze

+0

Podczas ustawiania tej wartości za pomocą kodu otrzymuję wyjątek "ArgumentOutOfRange" dla tego parametru. – BartoszKP

1

MaxReceivedMessageSize i MaxBufferSize koniecznością samą wartość i MaxBufferSize jest Int32.

+10

Not true - MaxBufferSize jest używany tylko w przypadku korzystania z buforowania. Jeśli korzystasz z funkcji przesyłania strumieniowego, zostanie ona zignorowana. Dlatego MaxReceivedMessageSize ma standard Int 64 i może różnić się od MaxBufferSize. –

+0

Masz na myśli maxBufferPoolSize i maxReceivedMessageSize? – Gary

+0

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

8

MaxMessageReceivedSize w basicHttpBinding wydaje się być Int32 - ustawienie go na max wartość składnika wyników Int32 w:

Fabryka ta buforuje wiadomości, więc rozmiary wiadomość musi zawierać się w przedziale wartości całkowitej. Nazwa Parametr: bindingElement.MaxReceivedMessageSize

+0

Nie, to Int64 (długie): http://msdn.microsoft. com/en-us/library/system.servicemodel.basichttpbinding.maxreceivedmessagesize% 28v = vs.100% 29.ASPX –

+0

@ D-Money - Zgaduję, że zależy to od serwera ... – Chad

0

Użyj ustawień domyślnych dla maksymalnego rozmiaru tak jeden nie tłuszcz palca wartość:

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

Jak to zrobić w web.config? – Zesty