BasicHttpBinding.MaxBufferSize Özellik

Tanım

Kanaldan ileti alan arabellek için bayt cinsinden en büyük boyutu alır veya ayarlar.

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

Özellik Değeri

Bu bağlama ile yapılandırılmış bir uç nokta için işlenirken iletileri depolayan bir arabelleğin bayt cinsinden en büyük boyutu. Varsayılan değer 65.536 bayttır.

Örnekler

Aşağıdaki örnek MaxBufferSize değerini 1.000.000 bayt olarak ayarlar.

BasicHttpBinding binding = new BasicHttpBinding();

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

Bu özelliğin değeri yapılandırma dosyasında da ayarlanabilir.

Açıklamalar

arabellekte işlenirken iletiyi depolamak için yeterli bellek yoksa, CLR yığınından daha fazla bellek ayrılarak çöp toplama ek yükünü artırır. CLR çöp yığınından kapsamlı ayırma, ileti arabelleği boyutunun çok küçük olduğunu ve performansın daha büyük bir ayırmayla geliştirilebileceğinin bir göstergesidir.

MaxBufferSize özelliğinin değeri ve önemi, iletilerin arabelleğe alınıp alınmadığına veya alındıkları kanalda akışa alınmasına bağlı olarak farklıdır:

  • Arabelleğe alınan aktarımlar için (TransferMode olarak TransferMode.Bufferedayarlanır), bu değer her zaman özelliği tarafından belirtilen değere MaxReceivedMessageSize eşittir.

  • Akışlı aktarımlar için (TransferMode olarak TransferMode.Streamedayarlanır), iletiyi oluşturmak için yalnızca SOAP üst bilgilerinin arabelleğe alınması gerekir. Gövde isteğe bağlı olarak akışla aktarılabilir. Bu durumda MaxBufferSize, genel iletinin boyutunu (üst bilgiler ve gövde) sınırladığı ve MaxBufferSize'ın yalnızca SOAP üst bilgilerinin boyutunu sınırladığı MaxReceivedMessageSize değerine eşit veya MaxReceivedMessageSizeondan küçüktür.

Burada ayarlanan arabellek boyutuyla ilgili sınırlamalar, ileti alışverişlerinin performansını iyileştirmeye yöneliktir. bir ileti arabellek için ayarlanan en yüksek değeri aşarsa bırakılmaz. Bunun yerine, CLR yığınından daha fazla bellek istenir ve bu, arabellekleri kullanmaktan daha fazla çöp toplama yüküne neden olur.

Note

MaxBufferSize ve MaxReceivedMessageSize ayarları yerel davranış ayarlarıdır. Bu, meta verilerdeki diğer uç noktalara iletilmediği anlamına gelir. Meta verilerden en fazla 2 GB ileti boyutuna sahip bir hizmete ara sunucu oluşturursanız, ara sunucu yine de varsayılan değeri 64.000'dir. Bu, yerel yöneticiler kapsamında ileti ve ileti arabelleği boyutu için uygun sınırların denetimini bırakır.

Şunlara uygulanır