BasicHttpBinding.MaxBufferSize Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger den maximala storleken i byte för en buffert som tar emot meddelanden från kanalen.
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
Egenskapsvärde
Den maximala storleken i byte för en buffert som lagrar meddelanden medan de bearbetas för en slutpunkt som konfigurerats med den här bindningen. Standardvärdet är 65 536 byte.
Exempel
I följande exempel anges MaxBufferSize till 1 000 000 byte.
BasicHttpBinding binding = new BasicHttpBinding();
// set to one million
binding.MaxBufferSize = 1000000;
Värdet för den här egenskapen kan också anges i konfigurationsfilen.
Kommentarer
Om det inte finns tillräckligt med minne i bufferten för att lagra meddelandet medan det bearbetas måste mer minne allokeras från CLR-heapen, vilket ökar kostnaderna för skräpinsamlingen. Omfattande allokering från CLR-skräphögen är en indikation på att meddelandebuffertens storlek är för liten och att prestanda kan förbättras med en större allokering.
Värdet för egenskapen MaxBufferSize och dess betydelse skiljer sig beroende på om meddelandena buffrades eller strömmas på kanalen som de tas emot genom:
För buffrade transporter (TransferMode inställt på TransferMode.Buffered) är det här värdet alltid lika med det som anges av MaxReceivedMessageSize egenskapen.
För strömmade transporter (TransferMode inställt på TransferMode.Streamed) måste endast SOAP-huvuden buffrade för att generera meddelandet. Brödtexten kan strömmas på begäran. I det här fallet är MaxBufferSize mindre än eller lika MaxReceivedMessageSizemed , där MaxReceivedMessageSize begränsar storleken på det övergripande meddelandet (rubriker och brödtext) och MaxBufferSize begränsar endast storleken på SOAP-huvudena.
Begränsningarna för buffertstorleken som anges här är för att optimera prestanda för meddelandeutbyten. Om ett meddelande överskrider det högsta värdet som angetts för bufferten tas det inte bort. I stället begärs mer minne från CLR-heapen och detta medför mer skräpinsamlingskostnader än att använda buffertarna.
Note
Inställningarna för MaxBufferSize och MaxReceivedMessageSize är lokala beteendeinställningar. Det innebär att de inte överförs till andra slutpunkter i metadata. Om du genererar en proxy till en tjänst med en maximal meddelandestorlek på 2 GB från metadata har proxyn fortfarande ett standardvärde på 64 K. Detta lämnar kontroll över lämpliga gränser för meddelande- och meddelandebuffertstorlek i omfånget för lokala administratörer.