1. Problēmas cēloņi Kļūdu statistikas pielikumā "Pēcizlaišanas problēmas" pēc projekta izlaišanas ir:
Kā pieredzes uzkrāšana šīs problēmas, cēloņi un risinājumi tiks iekļauti kontrolsarakstā, tad: Pirmais jautājums: Vai URL parametra augšējā robeža ir precīza atsauce? Kāda ir augšējā robeža? Otrais jautājums: Kāpēc ir ierobežojums datiem, kad POST? Vai ierobežojums ir 128K? 2. Problēmu analīze 1. Pirmais: 1) URL nav parametru augšējā ierobežojuma. Problēma patiesībā ir tā, ka IE ir garuma ierobežojums URL. 2) HTTP protokola specifikācija arī neierobežo URL garumu. Šis ierobežojums ir ierobežojums, ko nosaka konkrēta pārlūkprogramma un serveris. IE URL garuma ierobežojums ir 2083 baiti (2K+35). Citām pārlūkprogrammām, piemēram, Netscape, FireFox utt., Nav teorētiska garuma ierobežojuma, un tā ierobežojums ir atkarīgs no operētājsistēmas atbalsta. [Atsauce 1] 3) "Mainīga garuma parametri tiek nodoti caur URL" faktiski nozīmē, ka, iesniedzot veidlapu, tiek izmantota GET metode, nevis POST metode. Šo iespējamo kļūdu izraisa GET metodes izmantošana veidlapas datu iesniegšanai. Tā kā GET metode nodod URL datus serverim apstrādei. 4) Ņemiet vērā, ka šis ierobežojums ir viss URL garums, nevis tikai parametra vērtības datu garums. 5) Tā kā tas ir IE URL garuma ierobežojums, gan GET metodei, gan POST metodei ir šis ierobežojums. (Lūdzu, skatiet saistīto dokumentu, lai iegūtu sīkāku informāciju par FORM GET un POST metodēm [Ref. 2]) Ieteikumi: 1) Izprotiet vidi, kurā atrodas lietojumprogramma, piemēram, tīmekļa lietojumprogrammas pārlūkprogrammu un servera vidi, un izprotiet tās specifiskos parametru ierobežojumus. 2) Izmantojiet POST metodi, cik vien iespējams, lai iesniegtu sarežģītus datus. Piezīmes: Ja FORM neraksta metodes atribūtu, noklusējums ir izmantot GET metodi. Secinājums (rakstiet uz kontrolsarakstu): Iesniedzot datus, izmantojot GET metodi, IE vidē jāņem vērā URL garuma ierobežojums 2083 baiti. 2. Otrais: 1) Teorētiski POST nav lieluma ierobežojuma. HTTP protokola specifikācijai nav arī lieluma ierobežojuma. 2) "POST datiem ir lieluma ierobežojums 128K" nav pietiekami precīzs, POST datiem nav ierobežojumu, un servera procesora apstrādes jaudai ir ierobežojoša loma. 3) ASP programmām ir 100K datu garuma ierobežojums, kad pieprasījuma objekts apstrādā katru veidlapas lauku. Bet ar Request.BinaryRead šāda ierobežojuma nav. Risinājumus, kuriem nepieciešama vairāk nekā 100K veidlapas domēna datu apstrāde, lūdzu, skatiet tālāk [3. atsauce]. 4) Paplašinājumā attiecībā uz IIS 6.0 Microsoft ir palielinājusi ierobežojumus drošības apsvērumu dēļ [4. atsauce]. Mums jāpievērš uzmanība arī:
IIS 6.0 pēc noklusējuma ir ne vairāk kā 200 KB ASP POST datu, un ierobežojums ir 100 KB katram veidlapas laukam.
IIS 6.0 augšupielādes failu noklusējuma lielums ir 4 MB.
IIS 6.0 noklusējuma maksimālā pieprasījuma galvene ir 16 KB.
Šie ierobežojumi nebija pieejami pirms IIS 6.0. Ieteikumi: 1) Zinot darbības vides noklusējuma iestatījumus, jūs varat izstrādāt un ātri atrisināt radušās problēmas. 2) Jāapsver servera versija. Katrai IIS versijai ir atšķirīgi noklusējuma iestatījumi šiem parametriem, tāpēc, ja nepieciešams, atrodiet informāciju un sastādiet salīdzināšanas tabulu. Tādā veidā ir atsauce uz izstrādi un testēšanu. 3) Šie IIS 6.0 ierobežojumi faktiski ir tikai tā noklusējuma iestatījumi, un tos var modificēt faktiskajā lietojumprogrammas vidē. WINNT/system32/inetsrv/MetaBase.xml noklusējuma definīcija ir: AspBufferingLimit="4194304" atbilst augšupielādētā faila maksimālajam lielumam AspMaxRequestEntityAllowed="204800" atbilst maksimālajam datu apjomam POST ... Secinājums (rakstiet uz kontrolsarakstu): Izmantojot ASP, jāņem vērā, ka POST veidlapai ir ierobežojums 100 KB uz vienu lauku vispārējai lasīšanas apstrādei. Apsveriet, vai izmantot Request.Binary.
|