Delen via


Transportquota

Transportquota zijn een beleidsmechanisme voor het bepalen wanneer een verbinding overmatige resources verbruikt. Een quotum is een vaste limiet die het gebruik van extra resources voorkomt zodra de quotumwaarde is overschreden. Transportquota voorkomen schadelijke of onbedoelde Denial of Service-aanvallen.

WcF-transporten (Windows Communication Foundation) hebben standaardquotumwaarden die zijn gebaseerd op een conservatieve toewijzing van resources. Deze standaardwaarden zijn geschikt voor ontwikkelomgevingen en kleine installatiescenario's. Servicebeheerders moeten transportquota controleren en afzonderlijke quotumwaarden afstemmen als een installatie onvoldoende resources heeft of als verbindingen worden beperkt ondanks de beschikbaarheid van extra resources.

Soorten transportquota

WCF-transporten hebben drie soorten quota:

  • Time-outs beperken denial of service-aanvallen die afhankelijk zijn van het koppelen van resources gedurende een langere periode.

  • Geheugentoewijzingslimieten voorkomen dat één verbinding systeemgeheugen uitputt en service weigert naar andere verbindingen.

  • Limieten voor verzamelingsgrootten zijn gebonden aan het verbruik van resources die indirect geheugen toewijzen of die beperkt beschikbaar zijn.

Transportquotabeschrijvingen

In deze sectie worden de transportquota beschreven die beschikbaar zijn voor de standaard WCF-transporten: HTTP(S), TCP/IP en named pipes. Aangepaste transporten kunnen hun eigen configureerbare quota beschikbaar maken die niet zijn opgenomen in deze lijst. Raadpleeg de documentatie voor een aangepast transport voor meer informatie over de quota.

Elke quotuminstelling heeft een type, minimumwaarde en standaardwaarde. De maximumwaarde van een quotum wordt beperkt door het type. Vanwege computerbeperkingen is het niet altijd mogelijk om een quotum in te stellen op de maximumwaarde.

Name Type Min.

waarde
Standaardinstelling

waarde
Beschrijving
ChannelInitializationTimeout TimeSpan 1 maatstreepje 5 sec Maximale tijd om te wachten op een verbinding om de preparate te verzenden tijdens de eerste leesbewerking. Deze gegevens worden ontvangen voordat verificatie plaatsvindt. Deze instelling is over het algemeen veel kleiner dan de ReceiveTimeout quotumwaarde.
CloseTimeout TimeSpan 0 1 min Maximale tijd om te wachten tot een verbinding wordt gesloten voordat het transport een uitzondering genereert.
ConnectionBufferSize Geheel getal 1 8 kB Grootte, in bytes, van de verzend- en ontvangstbuffers van het onderliggende transport. Het vergroten van de buffergrootte kan de doorvoer verbeteren bij het verzenden van grote berichten.
IdleTimeout TimeSpan 0 2 min. Maximale tijd dat een gegroepeerde verbinding niet actief kan blijven voordat deze wordt gesloten.

Deze instelling is alleen van toepassing op gegroepeerde verbindingen.
LeaseTimeout TimeSpan 0 5 min. Maximale levensduur van een actieve gegroepeerde verbinding. Nadat de opgegeven tijd is verstreken, wordt de verbinding gesloten zodra de huidige aanvraag is verwerkt.

Deze instelling is alleen van toepassing op gegroepeerde verbindingen.
ListenBacklog Geheel getal 1 10 Maximum aantal verbindingen dat de listener niet kan gebruiken voordat extra verbindingen met dat eindpunt worden geweigerd.
MaxBufferPoolSize Lang 0 512 kB Maximaal geheugen, in bytes, dat het transport wijdt aan het groeperen van herbruikbare berichtbuffers. Wanneer de pool geen berichtbuffer kan leveren, wordt er een nieuwe buffer toegewezen voor tijdelijk gebruik.

Installaties die veel kanaalfactory's of listeners maken, kunnen grote hoeveelheden geheugen toewijzen voor buffergroepen. Het verminderen van deze buffergrootte kan het geheugengebruik in dit scenario aanzienlijk verminderen.
MaxBufferSize Geheel getal 1 64 kB Maximale grootte, in bytes, van een buffer die wordt gebruikt voor het streamen van gegevens. Als dit transportquotum niet is ingesteld of het transport geen streaming gebruikt, is de quotumwaarde gelijk aan de kleiner van de MaxReceivedMessageSize quotumwaarde en MaxValue.
MaxOutboundConnectionsPerEndpoint Geheel getal 1 10 Maximum aantal uitgaande verbindingen dat kan worden gekoppeld aan een bepaald eindpunt.

Deze instelling is alleen van toepassing op gegroepeerde verbindingen.
MaxOutputDelay TimeSpan 0 200 ms Maximale tijd om te wachten na een verzendbewerking voor het batchgewijs verwerken van extra berichten in één bewerking. Berichten worden eerder verzonden als de buffer van het onderliggende transport vol raakt. Het verzenden van extra berichten stelt de vertragingsperiode niet opnieuw in.
MaxPendingAccepts Geheel getal 1 1 Maximum aantal geaccepteerde kanalen waarvoor de listener kan wachten.

Er is een tijdsinterval tussen het voltooien van accepteren en een nieuw accepteren starten. Door deze verzamelingsgrootte te vergroten, kunnen clients die verbinding maken tijdens dit interval niet meer worden verwijderd.
MaxPendingConnections Geheel getal 1 10 Het maximum aantal verbindingen dat de listener kan hebben, kan wachten om te worden geaccepteerd door de toepassing. Wanneer deze quotumwaarde wordt overschreden, worden nieuwe binnenkomende verbindingen verwijderd in plaats van te wachten om te worden geaccepteerd.

Verbinding maken ionfuncties zoals berichtbeveiliging kunnen ertoe leiden dat een client meer dan één verbinding opent. Servicebeheerders moeten rekening houden met deze extra verbindingen bij het instellen van deze quotumwaarde.
MaxReceivedMessageSize Lang 1 64 kB Maximale grootte, in bytes, van een ontvangen bericht, inclusief kopteksten, voordat het transport een uitzondering genereert.
OpenTimeout TimeSpan 0 1 min Maximale tijd om te wachten tot een verbinding tot stand is gebracht voordat het transport een uitzondering genereert.
ReceiveTimeout TimeSpan 0 10 min. Maximale tijd om te wachten tot een leesbewerking is voltooid voordat het transport een uitzondering genereert.
SendTimeout Periode 0 1 min Maximale tijd om te wachten totdat een schrijfbewerking is voltooid voordat het transport een uitzondering genereert.

De transportquota en MaxOutboundConnectionsPerEndpoint worden gecombineerd tot één transportquotum MaxPendingConnections dat wordt aangeroepen MaxConnections wanneer deze wordt ingesteld via de binding of configuratie. Alleen het bindingselement staat het instellen van deze quotumwaarden afzonderlijk toe. Het MaxConnections transportquotum heeft dezelfde minimum- en standaardwaarden.

Transportquota instellen

Transportquota worden ingesteld via het transportbindingselement, de transportbinding, toepassingsconfiguratie of hostbeleid. Dit document heeft geen betrekking op het instellen van transporten via hostbeleid. Raadpleeg de documentatie voor het onderliggende transport om de instellingen voor quota voor hostbeleid te detecteren. In het onderwerp HTTP en HTTPS configureren worden quotuminstellingen voor het Http.sys-stuurprogramma beschreven. Zoek in de Microsoft Knowledge Base naar meer informatie over het configureren van Windows-limieten voor HTTP- en TCP/IP-verbindingen en benoemde pijpverbindingen.

Andere soorten quota zijn indirect van toepassing op transporten. De berichtcoderingsprogramma die door het transport wordt gebruikt om een bericht om te zetten in bytes, kan eigen quota-instellingen hebben. Deze quota zijn echter onafhankelijk van het type vervoer dat wordt gebruikt.

Transportquota beheren vanuit het bindingselement

Het instellen van transportquota via het bindingselement biedt de grootste flexibiliteit bij het beheren van het gedrag van het transport. De standaardtime-outs voor de bewerkingen Sluiten, Openen, Ontvangen en Verzenden worden uit de binding gehaald wanneer een kanaal wordt gebouwd.

Naam HTTP TCP/IP Benoemde pijp
ChannelInitializationTimeout X X
CloseTimeout
ConnectionBufferSize X X
IdleTimeout X X
LeaseTimeout X
ListenBacklog X
MaxBufferPoolSize X X X
MaxBufferSize X X X
MaxOutboundConnectionsPerEndpoint X X
MaxOutputDelay X X
MaxPendingAccepts X X
MaxPendingConnections X X
MaxReceivedMessageSize X X X
OpenTimeout
ReceiveTimeout
SendTimeout

Transportquota van de binding beheren

Het instellen van transportquota via de binding biedt een vereenvoudigde set quota waaruit u kunt kiezen, terwijl u nog steeds toegang krijgt tot de meest voorkomende quotumwaarden.

Naam HTTP TCP/IP Benoemde pijp
ChannelInitializationTimeout
CloseTimeout X X X
ConnectionBufferSize
IdleTimeout
LeaseTimeout
ListenBacklog X
MaxBufferPoolSize X X X
MaxBufferSize 1 X X
MaxOutboundConnectionsPerEndpoint 2 2
MaxOutputDelay
MaxPendingAccepts
MaxPendingConnections 2 2
MaxReceivedMessageSize X X X
OpenTimeout X X X
ReceiveTimeout X X X
SendTimeout X X X
  1. Het MaxBufferSize transportquotum is alleen beschikbaar voor de BasicHttp binding. De WSHttp bindingen zijn bedoeld voor scenario's die geen ondersteuning bieden voor gestreamde transportmodi.

  2. De vervoersquota MaxPendingConnections en MaxOutboundConnectionsPerEndpoint worden gecombineerd tot één transportquotum genaamd MaxConnections.

Transportquota van configuratie beheren

Toepassingsconfiguratie kan dezelfde transportquota instellen als het rechtstreeks openen van eigenschappen voor een binding. In configuratiebestanden begint de naam van een transportquotum altijd met een kleine letter. De eigenschap voor een binding komt bijvoorbeeld CloseTimeout overeen met de closeTimeout instelling in de configuratie en de MaxConnections eigenschap op een binding komt overeen met de maxConnections instelling in de configuratie.

Zie ook