BasicHttpBinding.MaxBufferSize 属性

定义

获取或设置缓冲区的最大大小(以字节为单位),该缓冲区用于接收来自通道的消息。

public:
 property int MaxBufferSize { int get(); void set(int value); };
public int MaxBufferSize { get; set; }
member this.MaxBufferSize : int with get, set
Public Property MaxBufferSize As Integer

属性值

Int32

指定为采用此绑定配置的终结点处理消息时,存储消息的缓冲区的最大大小(以字节为单位)。 默认值为 65,536 字节。

示例

以下示例将 MaxBufferSize 设置为 1,000,000 个字节。

BasicHttpBinding binding = new BasicHttpBinding();

// set to one million
binding.MaxBufferSize = 1000000;

也可以在配置文件中设置此属性的值。

注解

如果缓冲区中的内存不足以在处理消息的同时对其进行存储,则必须从 CLR 堆分配更多内存,而这会增加垃圾回收的系统开销。 从 CLR 垃圾堆进行大量分配表明消息缓冲区太小,可以通过实现更大的内存分配来提高性能。

MaxBufferSize 属性的值及其重要性不同,具体取决于消息是在接收消息的通道上缓冲还是流式传输:

此处对缓冲区大小所设置的限制是为了优化消息交换的性能。 如果消息超过为缓冲区设置的最大值,则不会丢弃该消息。 相反,如果从 CLR 堆请求更多的内存,这将带来比使用缓冲区更多的垃圾回收系统开销。

备注

MaxBufferSize 和 MaxReceivedMessageSize 的设置是本地行为设置。 这表示它们不会传输到元数据中的其他终结点。 如果为元数据中一个最大消息大小为 2GB 的服务生成了一个代理,则该代理的最大消息大小仍为默认的 64K。 这样就使对消息和消息缓冲区大小进行适当限制的控制权处在本地管理员的管辖范围内。

适用于