Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 20025|Válasz: 0

[ASP.NET] ASP.NET paraméterátadás, hosszkorlátok és használati óvintézkedések.

[Linket másol]
Közzétéve 2018. 03. 08. 10:18:07 | | | |
1. A probléma okai
A "Post-Release Problems" mellékletben a projekt megjelenése utáni hibastatisztikák a következők találhatók:   



Tapasztalati halmozódásként ezek a problémák, okok és megoldások szerepelnek az ellenőrzőlistában, aztán:
Az első kérdés: Az URL paraméter felső határa pontos hivatkozás? Mi a felső határ?
Második kérdés: Miért van korlátozás az adatforgalomra, amikor POST történik? A limit 128K?  
2. Problémaelemzés
1. Az első:
1) Az URL-ben nincs felső paraméterhatár. A probléma valójában az, hogy az IE-ben van hosszkorlát az URL-ekre.
2) A HTTP protokoll specifikációja sem korlátozza az URL hosszát. Ez a korlát egy adott böngésző és szerver által bevezetett korlátozás. Az IE URL hosszának korlátja 2083 bájt (2K+35). Más böngészőknél, mint a Netscape, FireFox stb. esetében nincs elméleti hosszkorlát, és ez a korlát az operációs rendszer támogatásától függ. [Ref. 1]
3) "Változó hosszúságú paramétereket továbbítanak URL-en keresztül" valójában azt jelenti, hogy a GET módszert használják az űrlap benyújtásakor, nem pedig a POST módszert. Ezt a lehetséges hibát a GET módszer alkalmazása a űrlapadatok beküldésére. Mert a GET metódus továbbítja az URL-ben lévő adatokat a szervernek feldolgozásra.
4) Fontos megjegyezni, hogy ez a korlát az egész URL hosszát tartalmazza, nem csak a paraméterértéked adathosszát.
5) Mivel ez az IE URL-hosszának korlátja, mind a GET-metódus, mind a POST metódus rendelkezik ezzel a korlátozással.
(Kérjük, tekintse meg a kapcsolódó dokumentumot a FORM [Ref. 2] GET és POST módszereiről)  
Ajánlások:
1) Ismerd meg az alkalmazás környezetét, például a böngésző- és szerverkörnyezetet, valamint ismerd meg a konkrét paraméterkorlátokat.
2) Használd a POST módszert a lehető legösszetettebb adatok beküldéséhez. Megjegyzés: Ha a FORM nem írja meg a metódus attribútumot, az alapértelmezett a GET metódus használata.
Következtetés (írj az ellenőrzőlistára):
Amikor adatokat küldünk be a GET módszerrel, figyelembe kell venned az IE környezetben az URL hossz 2083 bájtos határát.
2. A második:
1) Elméletileg a POST-nak nincs méretkorlátja. A HTTP protokoll specifikációjának mérete sem korlátozódik.
2) "A POST adatokra 128K méretkorlát van" nem elég pontos, nincs korlát a POST adatokra, és a szerver processzorának feldolgozási kapacitása is korlátozó szerepet játszik.
3) ASP programok esetén 100K adathossz korlátozás van, amikor a Request objektum minden űrlapmezőt feldolgoz. De az Request.BinaryRead esetében nincs ilyen korlátozás. Ha olyan megoldásokat keresnek, amelyek több mint 100 ezer űrlap-domain adatfeldolgozást igényelnek, kérjük, lásd az alábbi [Ref. 3] oldalt.
4) Ezzel összefüggésben, az IIS 6.0-nál a Microsoft biztonsági okokból fokozta a korlátozásokat [Ref. 4]. Figyelnünk kell a következőkre is:
   Az IIS 6.0 alapértelmezett maximum 200 KB ASP POST adatot tartalmaz, és a korlát 100 KB űrlapmezőnként.
    Az IIS 6.0 feltöltési fájlok alapértelmezett mérete 4MB.
    Az IIS 6.0 alapértelmezett maximális kérésfejléce 16KB.
    Ezek a korlátozások az IIS 6.0 előtt nem voltak elérhetők.
Ajánlások:
1) A futókörnyezet alapértelmezett beállításainak ismerete segít gyorsan megtervezni és megoldani a felmerülő problémákat.
2) A szerver verziót érdemes megfontolni. Minden IIS verziónak eltérő alapértelmezett beállításai vannak ezekhez a paraméterekhez, így szükség esetén keress információkat és állíts össze összehasonlító táblázatot. Így van egy referencia a fejlesztéshez és teszteléshez.
3) Az IIS 6.0 korlátai valójában csak az alapértelmezett beállítások, és ezeket a tényleges alkalmazáskörnyezetben módosíthatod.
    A WINNT/system32/inetsrv/MetaBase.xml alapértelmezett definíciója a következő:
        Az AspBufferingLimit="4194304" megfelel a feltöltött fájl maximális méretének
        Az AspMaxRequestEntityAllowed="204800" a POST maximális adatmennyiségének felel meg
        ...
Következtetés (írj az ellenőrzőlistára):
ASP használatakor figyelembe kell venni, hogy a POST űrlap általános olvasási feldolgozáshoz 100KB határt ad mezőnként. Gondold át, hogy használjuk-e az Request.Binary-t.





Előző:asp.net mvc beállítja az űrlapbejegyzést úgy, hogy engedélyezze a HTML beküldést
Következő:System.Linq.Dynamic
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com