|
|
Objavljeno na 8. 03. 2018 10:18:07
|
|
|
|

1. Vzroki problema V prilogi "Post-Release Problems" statistike napak po izdaji projekta so:
Kot kopičenje izkušenj bodo ti problemi, vzroki in rešitve vključeni v kontrolni seznam, nato: Prvo vprašanje: Ali je zgornja meja parametra URL natančna referenca? Kakšna je zgornja meja? Drugo vprašanje: Zakaj obstaja omejitev podatkov pri POST? Je omejitev 128 tisoč? 2. Analiza problema 1. Prva: 1) V URL-ju ni zgornje meje parametrov. Težava je v tem, da ima IE omejitev dolžine URL-jev. 2) Specifikacija protokola HTTP prav tako ne omejuje dolžine URL-ja. Ta omejitev je določena s strani določenega brskalnika in strežnika. Omejitev dolžine URL-ja pri IE je 2083 bajtov (2K+35). Za druge brskalnike, kot so Netscape, Firefox itd., ni teoretične omejitve dolžine, njena omejitev pa je odvisna od podpore operacijskega sistema. [Ref. 1] 3) "Parametri spremenljive dolžine se prenašajo preko URL-ja" dejansko pomeni, da se pri oddaji obrazca uporablja metoda GET, ne metoda POST. Vzrok te morebitne napake je uporaba metode GET za oddajo podatkov obrazca. Ker metoda GET posreduje podatke v URL-ju strežniku za obdelavo. 4) Upoštevajte, da je ta omejitev celotna dolžina URL-ja, ne le dolžina podatkov vrednosti parametra. 5) Ker je IE omejitev dolžine URL-ja, imata tako metoda GET kot POST to omejitev. (Za podrobnosti o metodah GET in POST v FORM [Ref. 2]) si oglejte povezani dokument) Priporočila: 1) Razumeti okolje, v katerem se aplikacija nahaja, kot sta brskalnik in strežniško okolje spletne aplikacije, ter razumeti njene specifične omejitve parametrov. 2) Uporabite metodo POST čim več za oddajo kompleksnih podatkov. Opomba: Ko FORM ne zapiše atributa metode, je privzeto uporaba metode GET. Zaključek (pišite na kontrolni seznam): Pri oddaji podatkov z metodo GET morate upoštevati omejitev dolžine URL-ja 2083 bajtov v okolju IE. 2. Drugi: 1) Teoretično POST nima omejitve velikosti. Specifikacija HTTP protokola prav tako nima omejitve velikosti. 2) "Obstaja omejitev velikosti 128K za POST podatke" ni dovolj natančna, ni omejitve za POST podatke, procesorska moč strežnika pa igra omejevalno vlogo. 3) Za ASP programe obstaja omejitev dolžine podatkov 100K, ko objekt Request obdela vsako polje obrazca. Pri Request.BinaryRead pa takšne omejitve ni. Za rešitve, ki zahtevajo obdelavo več kot 100K podatkov domene obrazcev, glejte [Ref. 3] spodaj. 4) Posledično je Microsoft za IIS 6.0 zaradi varnostnih razlogov povečal omejitve [Ref. 4]. Prav tako moramo biti pozorni na:
IIS 6.0 privzeto omogoča največ 200 KB podatkov ASP POST, omejitev pa je 100 KB na polje obrazca.
Privzeta velikost datotek za nalaganje v IIS 6.0 je 4MB.
IIS 6.0 privzeto uporablja največjo glavo zahteve 16KB.
Te omejitve pred IIS 6.0 niso bile na voljo. Priporočila: 1) Poznavanje privzetih nastavitev tekočega okolja vam bo pomagalo oblikovati in hitro reševati težave, ki se pojavijo. 2) Treba je razmisliti o strežniški različici. Vsaka različica IIS ima različne privzete nastavitve za te parametre, zato po potrebi poiščite informacije in sestavite primerjalno tabelo. Na ta način obstaja referenca za razvoj in testiranje. 3) Te omejitve IIS 6.0 so pravzaprav le njegove privzete nastavitve, ki jih lahko spreminjate v dejanskem aplikacijskem okolju. V WINNT/system32/inetsrv/MetaBase.xml je privzeta definicija: AspBufferingLimit="4194304" ustreza največji velikosti naložene datoteke AspMaxRequestEntityAllowed="204800" ustreza največji količini podatkov v POST ... Zaključek (pišite na kontrolni seznam): Pri uporabi ASP morate upoštevati, da ima POST obrazec omejitev 100KB na polje za splošno obdelavo branja. Premislite, ali uporabiti Request.Binary.
|
Prejšnji:asp.net mvc nastavi objavo obrazca tako, da omogoča oddajo HTMLNaslednji:System.Linq.Dynamic
|