ASP.NET zahtjev koji ima mnogo tipke obrasca, datoteke ili članovi tereta JSON ne uspije uz iznimku

Vrijedi za: .NET Framework 3.5 Service Pack 1Windows 7 Service Pack 1Windows 7 Enterprise

Sažetak


Sigurnost Microsoft ažurirajte MS11-100 ograničenja maksimalan broj obrasca tipke, datoteke i članovi JSON 1000 u HTTP zahtjev. Zbog ove promjene ASP.NET aplikacija odbiti zahtjeve koje imaju više od 1000 te elemente. HTTP klijenti koji proveli zahtjeva bit će odbijen i poruku o pogrešci pojavit će se u web-pregledniku. Poruka o pogrešci obično imaju statusni kod HTTP 500. Ovo ograničenje novi mogu se konfigurirati na osnovi aplikacije. Konfiguracija upute u odjeljku "Rješenje".

Simptomi


ASP.NET zahtjeva koji imaju mnogo tipke obrasca, datoteke ili JSON tereta primiti odgovor pogreška poslužitelja. Zapisnik aplikacije na poslužitelju ima unos upozorenje s izvora koji je određena verzija ASP.NET i ID događaja od 1309. Zapisnik događaja sadrži jednu od sljedećih poruka:
Poruka 1:
Informacije o aplikaciji: domene aplikacija: / LM/W3SVC/1/KORIJENSKI/< domena App > razina pouzdanosti: Srednje aplikacije virtualni put: put < VDIR put > aplikacije: naziv računala < App put >: procesa < naziv računala > informacije: ID procesa: 0001 naziv procesa: naziv računa w3wp.exe: informacije o iznimci IIS APPPOOL\DefaultAppPool: vrsta iznimke: poruka iznimke HttpException: URL kodirani obrazac podataka nije valjan. na (System.Web.HttpRequest.FillInFormCollection) na (System.Web.HttpRequest.get_Form) na (System.Web.HttpRequest.get_HasForm) na System.Web.UI.Page.GetCollectionBasedOnMethod (Booleova dontReturnNull) na (System.Web.UI.Page.DeterminePostBackMode) na System.Web.UI.Page.ProcessRequestMain (Booleova includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Poruka 2:
Informacije o aplikaciji: domene aplikacija: / LM/W3SVC/1/KORIJENSKI/< domena App > razina pouzdanosti: Srednje aplikacije virtualni put: put < VDIR put > aplikacije: naziv računala < App put >: procesa < naziv računala > informacije: ID procesa: Naziv 0001Process: naziv računa w3wp.exe: informacije o iznimci IIS APPPOOL\DefaultAppPool: vrsta iznimke: poruka iznimke InvalidOperationException: postupak nije valjan zbog trenutnog stanja objekt. na (System.Web.HttpRequest.FillInFilesCollection) na (System.Web.HttpRequest.get_Files) na FileUpload.Page_Load (objekt pošiljatelja, EventArgs e) na System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o objektu, t objekt, EventArgs e) na System.Web.Util.CalliEventHandlerDelegateProxy.Callback (objekt pošiljatelja, EventArgs e) na System.Web.UI.Control.OnLoad (EventArgs e) na (System.Web.UI.Control.LoadRecursive) na System.Web.UI.Page.ProcessRequestMain (Booleov operator includeStagesBeforeAsyncPoint
Poruka 3:
Domene informacije: aplikacija aplikacije: / LM/W3SVC/1/KORIJENSKI/< domena App > razina pouzdanosti: Srednje aplikacija virtualnog puta: < VDIR put > aplikacije put: naziv računala < App put >: < naziv računala > procesa informacije: ID procesa: Naziv 0001Process: naziv računa w3wp.exe: informacije o iznimci IIS APPPOOL\DefaultAppPool: vrsta iznimke: poruka iznimke InvalidOperationException: postupak nije valjan zbog trenutnog stanja objekt. na System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 dubine) na System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 dubina) na System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (unos niza, Int32 depthLimit, JavaScriptSerializer serijalizatora) na System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer serijalizatora, niz unos, vrsta vrsta, Int32 depthLimit) na System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (niz unos) na Failing.Page_Load (objekt pošiljatelja, EventArgs e) na System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o objektu, t objekt, EventArgs e) na System.Web.Util.CalliEventHandlerDelegateProxy.Callback (objekt pošiljatelja, EventArgs e) na System.Web.UI.Control.OnLoad (EventArgs e) na (System.Web.UI.Control.LoadRecursive) na System.Web.UI.Page.ProcessRequestMain (Booleova includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Datoteka zapisnika IIS prikazuje stavka slična sljedećoj:
/Machine/default.aspx POST 00:00:00:: 1 2011-01-01 - 80 -:: 1-500 0 0 187

Uzrok


Microsoft security update sigurnosni bilten MS11-100 adrese mijenja je zadani maksimalni broj obrasca tipke, datoteke i JSON članove koje će prihvatiti ASP.NET u zahtjevu 1.000. Ova promjena Izvršen je adresa slabe uskraćivanjem usluga da na Microsoft bilten MS11-100 dokumente.

Rješenje


Aplikacije koje dosegnete to ograničenje za obrazac ključeva ili datoteka možete izmijeniti u ASP.NET appSetting aspnet:MaxHttpCollectionKeys, kao što je prikazano ispod aplikacije ASP.NET konfiguracijske datoteke. Ova postavka adrese pogreška 1 i pogreške poruka 2 iz "Simptomi" sekciji poruka.
<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>
Napomena Ako koristite ASP.NET 1.1 na temelju x86 sustava, postavka je prilagoditi dodavanjem DWORD vrijednost sljedeći ključ registra:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Ako koristite ASP.NET 1.1 na temelju x64 sustava, postavka je prilagoditi dodavanjem DWORD vrijednost sljedeći ključ registra:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Pogodi ograničenje za JSON payloads aplikacije možete izmijeniti u ASP.NET appSetting aspnet:MaxJsonDeserializerMembers, kao što je prikazano ispod aplikacije ASP.NET konfiguracijske datoteke. Ova postavka adrese sekciji pogreške poruka 3 iz "Simptomi".
<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>
Napomena Susceptibility poslužitelja za slabe uskraćivanjem usluge koji se spominju u biltenu o sigurnosti MS11-100 povećate tu vrijednost iznad povećava zadanu postavku.

Reference


Dodatne informacije o bilten MS11-100, pogledajte sljedeći članak TechNet: Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:
2638420 MS11-100: Slabe točke u .NET Framework može dopustiti povećanje ovlasti: prosinac 29, 2011