2009-06-17 43 views
34

Tôi nhận thấy rằng 2147483647 có vẻ là một lựa chọn phổ biến cho maxReceivedMessageSize nhưng đây có phải là giới hạn không?Kích thước tối đa mà maxReceivedMessageSize có thể được đặt thành một NetNamedPipeBinding là gì?

+3

Mặt khác, bạn có thể muốn xem xét rằng cài đặt nó để 2 GB kích thước tin nhắn có nghĩa là máy chủ WCF của bạn sẽ có khả năng phải đối phó với một số tin nhắn lên đến 2 GB trong kích thước cùng một lúc - nó có thể làm điều đó ?? Marc –

+0

Đó là nếu bạn có một máy chủ 32bit ... – Chad

Trả lời

38

Nope, giới hạn là Int64.MaxValue1 đó là: 9223372036854775807

+0

Bài viết cảm ơn tuyệt vời – Nick

+7

Trong tệp web.config-File, chỉ giới hạn Int32 dường như hoạt động. Có thể đó là một vấn đề phân tích cú pháp. – marsze

+0

Khi đặt giá trị này thông qua mã, tôi nhận được ngoại lệ 'ArgumentOutOfRange' cho tham số này. – BartoszKP

1

MaxReceivedMessageSizeMaxBufferSize phải cùng một giá trị và MaxBufferSizeInt32.

+10

Không đúng - MaxBufferSize chỉ được sử dụng nếu bạn đang sử dụng Buffering. Nếu bạn đang sử dụng Streaming, thì nó sẽ bị bỏ qua. Đây là lý do tại sao MaxReceivedMessageSize là Int64 và có thể khác với MaxBufferSize. –

+0

Bạn có nghĩa là maxBufferPoolSize và maxReceivedMessageSize không? – Gary

+0

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

8

MaxMessageReceivedSize trong basicHttpBinding dường như là một int32 - đặt nó trên giá trị tối đa của một kết quả int32 trong:

nhà máy này đệm thông điệp, vì vậy kích thước thông điệp phải nằm trong phạm vi của một giá trị số nguyên. Tên Parameter: bindingElement.MaxReceivedMessageSize

+0

Không, đó là Int64 (dài): http://msdn.microsoft. com/en-us/library/system.servicemodel.basichttpbinding.maxreceivedmessagesize% 28v = vs.100% 29.ASPX –

+0

@ D-Money - Tôi đoán nó phụ thuộc vào máy chủ ... – Chad

0

Sử dụng các giá trị mặc định cho kích thước tối đa vì vậy người ta không béo ngón tay một giá trị:

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

Làm thế nào để bạn làm điều này trong web.config? – Zesty

Các vấn đề liên quan