Megosztás a következőn keresztül:


Szállítási kvóták

A szállítási kvóták olyan szabályzati mechanizmusok, amelyek eldöntik, hogy egy kapcsolat mikor használ túl sok erőforrást. A kvóta egy kemény korlát, amely megakadályozza a további erőforrások használatát a kvótaérték túllépése után. A szállítási kvóták megakadályozzák a rosszindulatú vagy nem szándékos szolgáltatásmegtagadási támadásokat.

A Windows Communication Foundation (WCF) átvitelei alapértelmezett kvótaértékekkel rendelkeznek, amelyek az erőforrások konzervatív elosztásán alapulnak. Ezek az alapértelmezett értékek fejlesztési környezetekhez és kisebb telepítési forgatókönyvekhez használhatók. A szolgáltatásgazdáknak át kell tekintenie az átviteli kvótákat, és hangolniuk kell az egyes kvótaértékeket, ha egy telepítés elfogy az erőforrásokból, vagy ha a kapcsolatok a további erőforrások rendelkezésre állása ellenére korlátozottak.

Szállítási kvóták típusai

A WCF-szállítások háromféle kvótával rendelkeznek:

  • Az időtúllépések mérsékelik a szolgáltatásmegtagadással kapcsolatos támadásokat, amelyek az erőforrások hosszabb ideig való elkössönyösítésére támaszkodnak.

  • A memóriafoglalási korlátok megakadályozzák , hogy egyetlen kapcsolat kimerítse a rendszer memóriáját, és megtagadja a szolgáltatást más kapcsolatokhoz.

  • A gyűjtemény méretkorlátjai korlátozták a közvetetten memóriát lefoglaló vagy korlátozott készletben lévő erőforrások felhasználását.

Átviteli kvóta leírása

Ez a szakasz a szabványos WCF-átvitelekhez elérhető szállítási kvótákat ismerteti: HTTP(S), TCP/IP és nevesített csövek. Az egyéni átvitelek közzétehetik a saját konfigurálható kvótáikat, amelyek nem szerepelnek a listában. A kvótákról az egyéni szállítás dokumentációjában tájékozódhat.

Minden kvótabeállítás típussal, minimális értékkel és alapértelmezett értékkel rendelkezik. A kvóta maximális értékét a típusa korlátozza. A gépi korlátozások miatt nem mindig lehet a kvótát a maximális értékre állítani.

Név Típus Minimális

Érték
Alapértelmezett

Érték
Leírás
ChannelInitializationTimeout időtartam 1 pipa 5 másodperc Maximális idő, amíg egy kapcsolat elküldi a preambulumot a kezdeti olvasás során. Ezek az adatok a hitelesítés előtt érkeznek. Ez a beállítás általában sokkal kisebb, mint a ReceiveTimeout kvótaérték.
CloseTimeout időtartam 0 1 perc A kapcsolat bezárásának maximális ideje, mielőtt az átvitel kivételt eredményez.
ConnectionBufferSize Egész 0 8 KB A mögöttes átvitel átviteli és fogadási puffereinek mérete bájtban. A puffer méretének növelése javíthatja az átviteli sebességet nagy üzenetek küldésekor.
IdleTimeout időtartam 0 2 perc A készletezett kapcsolatok maximális időtartama üresjáratban maradhat a lezárás előtt.

Ez a beállítás csak a készletezett kapcsolatokra vonatkozik.
LeaseTimeout időtartam 0 5 perc Aktív készletezett kapcsolat maximális élettartama. A megadott idő leteltét követően a kapcsolat az aktuális kérés kiszolgálása után bezárul.

Ez a beállítás csak a készletezett kapcsolatokra vonatkozik.
ListenBacklog Egész 0 10 A figyelő által üzemeltetett kapcsolatok maximális száma, mielőtt a végponthoz kapcsolódó további kapcsolatok le lesznek tagadva.
MaxBufferPoolSize Hosszú 0 512 KB Maximális memória bájtban, amelyet az átvitel az újrafelhasználható üzenetpufferek készletezésére fordít. Ha a készlet nem tud üzenetpuffert biztosítani, a rendszer egy új puffert foglal le ideiglenes használatra.

A számos csatornagyárat vagy figyelőt létrehozó telepítések nagy mennyiségű memóriát foglalhatnak le a pufferkészletekhez. A puffer méretének csökkentése jelentősen csökkentheti a memóriahasználatot ebben a forgatókönyvben.
MaxBufferSize Egész 0 64 KB A streamelési adatokhoz használt puffer maximális mérete bájtban. Ha ez az átviteli kvóta nincs beállítva, vagy az átvitel nem streamelést használ, akkor a kvóta értéke megegyezik a kvóta értékének kisebbével MaxReceivedMessageSize és MaxValuea .
MaxOutboundConnectionsPerEndpoint Egész 0 10 Az adott végponthoz társítható kimenő kapcsolatok maximális száma.

Ez a beállítás csak a készletezett kapcsolatokra vonatkozik.
MaxOutputDelay időtartam 0 200 ms A küldési művelet után a további üzenetek egyetlen műveletben történő kötegelésének maximális ideje. A rendszer korábban küld üzeneteket, ha az alapul szolgáló átvitel puffere megtelik. A további üzenetek küldése nem állítja vissza a késleltetési időszakot.
MaxPendingAccepts Egész 0 0 A figyelő által várt csatornák maximális száma.

Az elfogadás befejezése és az új elfogadás kezdete között időintervallum van. Ennek a gyűjteményméretnek a növelésével megakadályozhatja, hogy az ebben az intervallumban csatlakozó ügyfelek ne legyenek elvetve.
MaxPendingConnections Egész 0 10 A figyelő által elfogadandó kapcsolatok maximális száma. Ha túllépi ezt a kvótaértéket, a rendszer az új bejövő kapcsolatokat elveti ahelyett, hogy az elfogadásra vár.

Csatlakozás olyan funkciók, mint az üzenetbiztonság, egy ügyfél több kapcsolatot nyithatnak meg. A kvótaérték beállításakor a szolgáltatásgazdáknak figyelembe kell venniük ezeket a további kapcsolatokat.
MaxReceivedMessageSize Hosszú 0 64 KB A fogadott üzenetek maximális mérete bájtban, beleértve a fejléceket is, mielőtt az átvitel kivételt eredményez.
OpenTimeout időtartam 0 1 perc A kapcsolat létrehozásának maximális ideje, mielőtt az átvitel kivételt eredményez.
ReceiveTimeout időtartam 0 10 perc A maximális várakozási idő, amíg az olvasási művelet befejeződik, mielőtt az átvitel kivételt eredményez.
SendTimeout Időtartomány 0 1 perc Az írási művelet befejezésének maximális ideje, mielőtt az átvitel kivételt eredményez.

A szállítási kvóták MaxPendingConnections egyetlen MaxOutboundConnectionsPerEndpoint szállítási kvótába vannak összevonva, amelyet a kötés vagy a konfiguráció beállításakor hívunk MaxConnections meg. Csak a kötési elem teszi lehetővé a kvótaértékek egyenkénti beállítását. Az MaxConnections átviteli kvóta minimális és alapértelmezett értékei megegyeznek.

Szállítási kvóták beállítása

A szállítási kvóták az átviteli kötés elemen, az átviteli kötésen, az alkalmazáskonfiguráción vagy a gazdaszabályzaton keresztül vannak beállítva. Ez a dokumentum nem foglalkozik az átvitelek gazdagépszabályzaton keresztüli beállításával. A gazdagépházirend-kvóták beállításainak megismeréséhez tekintse meg a mögöttes átvitel dokumentációját. A HTTP és a HTTPS konfigurálása témakör az Http.sys illesztőprogram kvótabeállítását ismerteti. A Microsoft tudásbázisában további információt talál a Windows HTTP-, TCP/IP- és elnevezett csőkapcsolatokra vonatkozó korlátainak konfigurálásáról.

Más típusú kvóták közvetetten vonatkoznak a szállításokra. Az üzenetkódoló, amelyet az átvitel az üzenet bájttá alakításához használ, saját kvótabeállításokkal rendelkezhet. Ezek a kvóták azonban függetlenek a használt szállítás típusától.

Átviteli kvóták szabályozása a kötési elemből

A szállítási kvóták kötési elemen keresztüli beállítása a legnagyobb rugalmasságot biztosítja a szállítás viselkedésének szabályozásában. A bezárási, megnyitási, fogadási és küldési műveletek alapértelmezett időtúllépései a kötésből származnak egy csatorna létrehozásakor.

Név HTTP TCP/IP Elnevezett cső
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

Szállítási kvóták szabályozása a kötésből

A szállítási kvóták kötésen keresztüli beállítása egyszerűsített kvótakészletet kínál, amelyből választhat, miközben továbbra is hozzáférést biztosít a leggyakoribb kvótaértékekhez.

Név HTTP TCP/IP Elnevezett cső
ChannelInitializationTimeout
CloseTimeout X X X
ConnectionBufferSize
IdleTimeout
LeaseTimeout
ListenBacklog X
MaxBufferPoolSize X X X
MaxBufferSize 0 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. Az MaxBufferSize átviteli kvóta csak a BasicHttp kötésen érhető el. A WSHttp kötések olyan forgatókönyvekhez tartoznak, amelyek nem támogatják a streamelt átviteli módokat.

  2. A szállítási kvóták MaxPendingConnections , és MaxOutboundConnectionsPerEndpoint egyetlen szállítási kvótába MaxConnectionsvannak összevonva .

Átviteli kvóták szabályozása konfigurációból

Az alkalmazáskonfiguráció ugyanazokat az átviteli kvótákat állíthatja be, mint egy kötés tulajdonságainak közvetlen elérése. A konfigurációs fájlokban az átviteli kvóta neve mindig kisbetűvel kezdődik. Egy kötés tulajdonsága CloseTimeout például megfelel a closeTimeout konfigurációban megadott beállításnak, a kötés tulajdonsága MaxConnections pedig megfelel a maxConnections konfigurációban megadott beállításnak.

Lásd még