BasicHttpBinding.MaxBufferSize Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 boyut üst sınırı. 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
İşlendiği sırada iletiyi depolamak için arabellekte yeterli bellek yoksa, CLR yığınından daha fazla bellek ayrılmalıdır ve bu da çö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 iyileştirilebileceğinin göstergesidir.
MaxBufferSize özelliğinin değeri ve önemi, iletilerin alındıkları kanalda arabelleğe alınmasına veya 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 bilgileri arabelleğe alınmalıdır. Gövde isteğe bağlı olarak akışla aktarılabilir. Bu durumda, MaxBufferSize değerinden küçük veya eşittir MaxReceivedMessageSize; burada MaxReceivedMessageSize genel iletinin boyutunu (üst bilgiler ve gövde) sınırlar ve MaxBufferSize yalnızca SOAP üst bilgilerinin boyutunu sınırlar.
Burada ayarlanan arabellek boyutu sınırlamaları, ileti alışverişlerinin performansını iyileştirmeye yöneliktir. İleti 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 da arabellekleri kullanmaktan daha fazla çöp toplama yüküne neden olur.
Not
MaxBufferSize ve MaxReceivedMessageSize ayarları yerel davranış ayarlarıdır. Bu, meta verilerdeki diğer uç noktalara aktarılmadıkları anlamına gelir. Meta verilerden en fazla 2 GB ileti boyutuna sahip bir hizmete ara sunucu oluşturursanız, ara sunucu hala varsayılan değeri 64K'dır. Bu, yerel yöneticiler kapsamında ileti ve ileti arabelleği boyutu için uygun sınırların denetimini bırakır.