BasicHttpBinding.MaxBufferSize 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
채널로부터 메시지를 수신하는 버퍼의 최대 크기(바이트)를 가져오거나 설정합니다.
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
속성 값
이 바인딩으로 구성된 엔드포인트에 대해 메시지가 처리되는 동안 해당 메시지를 저장하는 버퍼의 최대 크기(바이트)입니다. 기본값은 65,536바이트입니다.
예제
다음 예제에서는 MaxBufferSize 를 1,000,000바이트로 설정합니다.
BasicHttpBinding binding = new BasicHttpBinding();
// set to one million
binding.MaxBufferSize = 1000000;
이 속성의 값은 구성 파일에서 설정할 수도 있습니다.
설명
처리되는 동안 메시지를 저장할 메모리가 부족하면 CLR 힙에서 더 많은 메모리를 할당해야 하므로 가비지 수집 오버헤드가 증가합니다. CLR 가비지 힙의 광범위한 할당은 메시지 버퍼 크기가 너무 작고 더 큰 할당으로 성능을 향상시킬 수 있음을 나타냅니다.
MaxBufferSize 속성의 값과 해당 중요성은 메시지가 수신되는 채널에서 버퍼링되거나 스트리밍되는지 여부에 따라 다릅니다.
버퍼링된 전송(TransferMode 로 TransferMode.Buffered설정)의 경우 이 값은 항상 속성에서 지정한 MaxReceivedMessageSize 값과 같습니다.
스트리밍 전송(TransferMode 로 설정)의 경우 메시지를 생성하려면 TransferMode.StreamedSOAP 헤더만 버퍼링되어야 합니다. 본문은 주문형으로 스트리밍할 수 있습니다. 이 경우 MaxBufferSize는 전체 메시지(헤더 및 본문)의 크기를 제한하고 MaxBufferSize는 SOAP 헤더의 크기만 경계하는 크기보다 작거나 같습니다MaxReceivedMessageSizeMaxReceivedMessageSize.
여기서 설정한 버퍼 크기 제한은 메시지 교환의 성능을 최적화하는 데 목적이 있습니다. 설정된 버퍼 최대값을 초과하는 메시지는 삭제됩니다. 그 대신 CLR 힙으로부터 추가 메모리가 요청되며 그로 인해 버퍼를 사용하는 경우보다 더 많은 가비지 컬렉션 오버헤드가 발생합니다.
참고
MaxBufferSize 및 MaxReceivedMessageSize에 대한 설정은 로컬 동작 설정입니다. 즉, 메타데이터 형태로 다른 엔드포인트에 전송되지 않습니다. 메타데이터에서 최대 메시지 크기가 2GB인 서비스에 프록시를 생성하는 경우 프록시의 기본값은 64K입니다. 메시지 및 메시지 버퍼 크기를 적절히 제한하는 것은 로컬 관리자의 업무입니다.