Olet tällä hetkellä offline-tilassa. Internet-yhteyden muodostamista uudelleen odotetaan

Paljon lomakeavaimia, tiedostoja tai JSON-hyötykuormajäseniä sisältävä ASP.NET-pyyntö epäonnistuu ja antaa poikkeuksen

Windows XP:n tuki on päättynyt

Microsoft lopetti Windows XP:n tuen 8.4.2014. Tämä muutos on vaikuttanut ohjelmistopäivityksiin ja suojausasetuksiin. Lue lisätietoja muutoksen vaikutuksesta ja suojauksen varmistamisesta.

Windows Server 2003:n tuki päättyi 14.7.2015

Microsoft lopetti Windows Server 2003:n tuen 14.7.2015. Tämä muutos on vaikuttanut ohjelmistopäivityksiin ja suojausasetuksiin. Lue lisätietoja muutoksen vaikutuksesta ja suojauksen varmistamisesta.

Yhteenveto
Microsoft-suojauspäivitys MS11-100 rajoittaa HTTP-pyynnön lomakeavainten, tiedostojen ja JSON-hyötykuormajäsenten enimmäismääräksi 1 000. Tämän muutoksen vuoksi ASP.NET-sovellukset hylkäävät pyynnöt, joissa on yli 1 000 tällaista elementtiä. Tällaisia pyyntöjä tekevät HTTP-asiakkaat estetään, ja selaimeen tulee näkyviin virhesanoma. Virhesanomassa on yleensä HTTP 500 -tilakoodi. Tämän uuden rajoituksen voi määrittää sovelluskohtaisesti. Määritysohjeet ovat ongelmanratkaisuosiossa.


Oire
Paljon lomakeavaimia, tiedostoja tai JSON-hyötykuormaa sisältävät ASP.NET-pyynnöt saa virhevastauksen palvelimesta. Palvelimessa olevassa sovelluslokissa on varoitusmerkintä Lähde-määrityksellä, joka on tietty ASP.NET-versio, sekä tapahtumatunnus 1309. Tapahtumaloki sisältää jonkin seuraavista sanomista:


Sanoma 1:
Sovelluksen tiedot:
Sovelluksen toimialue: /LM/W3SVC/1/ROOT/<Sovelluksen toimialue>
Luottamustaso: Normaali
Sovelluksen näennäispolku: <VDIR-polku>
Sovelluksen polku: <Sovelluksen polku>
Koneen nimi: <Koneen nimi>
Prosessin tiedot:
Prosessin tunnus: 0001
Prosessin nimi: w3wp.exe
Tilin nimi: IIS APPPOOL\DefaultAppPool

Poikkeuksen tiedot:
Poikkeuksen laji: HttpException
Poikkeuksen sanoma: URL-koodatut lomaketiedot ovat virheellisiä.
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


Sanoma 2:
Sovelluksen tiedot:
Sovelluksen toimialue: /LM/W3SVC/1/ROOT/<Sovelluksen toimialue>
Luottamustaso: Normaali
Sovelluksen näennäispolku: <VDIR-polku>
Sovelluksen polku: <Sovelluksen polku>
Koneen nimi: <Koneen nimi>

Prosessin tiedot:
Prosessin tunnus: 0001
Prosessin nimi: w3wp.exe
Tilin nimi: IIS APPPOOL\DefaultAppPool

Poikkeuksen tiedot:
Poikkeuksen laji: InvalidOperationException
Poikkeuksen sanoma: Toiminto ei ole käytettävissä objektin nykyisen tilan vuoksi.
at System.Web.HttpRequest.FillInFilesCollection()
at System.Web.HttpRequest.get_Files()
at FileUpload.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint

Sanoma 3:
Sovelluksen tiedot:
Sovelluksen toimialue: /LM/W3SVC/1/ROOT/<Sovelluksen toimialue>
Luottamustaso: Normaali
Sovelluksen näennäispolku: <VDIR-polku>
Sovelluksen polku: <Sovelluksen polku>
Koneen nimi: <Koneen nimi>

Prosessin tiedot:
Prosessin tunnus: 0001
Prosessin nimi: w3wp.exe
Tilin nimi: IIS APPPOOL\DefaultAppPool

Poikkeuksen tiedot:
Poikkeuksen laji: InvalidOperationException
Poikkeuksen sanoma: Toiminto ei ole käytettävissä objektin nykyisen tilan vuoksi.
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
at System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
at Failing.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


IIS-lokitiedostossa näkyy seuraavankaltainen merkintä:
2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




Syy
Microsoft-suojauspäivitys, jota suojaustiedote MS11-100 koskee, muuttaa ASP.NETin pyynnössä hyväksymien lomakeavainten, tiedostojen ja JSON-jäsenten enimmäismääräksi 1 000. Tämä muutos on tehty Microsoft-suojaustiedotteessa MS11-100 dokumentoidun palvelunestoheikkouden korjaamiseksi.


Ratkaisu
Tämän lomakeavain- tai tiedostorajoituksen saavuttavat sovellukset voivat muokata ASP.NET-sovellusasetusta aspnet:MaxHttpCollectionKeys, mikä on kuvattu alla olevassa ASP.NET-sovelluksen kokoonpanotiedostossa. Tämä asetus korjaa tämän artikkelin oireista kertovassa kohdassa kuvatut virhesanomat 1 ja 2.
<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>


Huomautus Jos ASP.NET 1.1 on käytössä x86-järjestelmässä, asetusta säädetään lisäämällä DWORD-arvo seuraavaan rekisteriavaimeen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Jos ASP.NET 1.1 on käytössä x64-järjestelmässä, asetusta säädetään lisäämällä DWORD-arvo seuraavaan rekisteriavaimeen:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys



Tämän JSON-hyötykuormarajoituksen saavuttavat sovellukset voivat muokata ASP.NET-sovellusasetusta aspnet:MaxJsonDeserializerMembers, mikä on kuvattu alla olevassa ASP.NET-sovelluksen kokoonpanotiedostossa. Tämä asetus korjaa tämän artikkelin oireista kertovassa kohdassa kuvatun virhesanoman 3.
<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>



Huomautus Jos tämä arvo on oletusasetusta suurempi, palvelin on tavallista alttiimpi suojaustiedotteessa MS11-100 kuvatulle palvelunestoheikkoudelle.


Suositukset
Lisätietoja suojaustiedotteesta MS11-100 on seuraavassa TechNet-artikkelissa: Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
2638420 MS11-100: .NET Framework -ytimen heikkous saattaa mahdollistaa käyttöoikeuksien laajentamisen: 29.12.2011
Huomautus Tämä on niin sanottu nopeasti julkaistava (”fast publish”) artikkeli, joka on laadittu suoraan Microsoftin tukiorganisaatiossa. Tässä olevat tiedot toimitetaan sellaisenaan vastauksena esiin tulleisiin ongelmiin. Koska aineisto on tuotu saataville nopeasti, se saattaa sisältää painovirheitä ja tietoja saatetaan muokata milloin tahansa ilman erillistä ilmoitusta. Lue muut huomioon otettavat seikat käyttöehdoista.
Ominaisuudet

Artikkelin tunnus: 2661403 – Viimeisin tarkistus: 11/29/2012 14:34:00 – Versio: 1.0

Microsoft .NET Framework 4.0, Microsoft .NET Framework 3.5 Service Pack 1, Microsoft .NET Framework 3.5, Microsoft .NET Framework 2.0 Service Pack 2, Microsoft .NET Framework 2.0 Service Pack 1 (x86), Microsoft .NET Framework 2.0, Microsoft .NET Framework 1.1 Service Pack 1, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0 Service Pack 3, Microsoft .NET Framework 1.0, Windows 7 Service Pack 1, Windows 7 Enterprise, Windows 7 Professional, Windows 7 Ultimate, Windows 7 Home Premium, Windows 7 Home Basic, Windows Server 2008 R2 Service Pack 1, Windows Server 2008 R2 Standard, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Datacenter, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2, Microsoft Windows Server 2003 Service Pack 2, Microsoft Windows XP Service Pack 3

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability KB2661403
Palaute
language-'+language.locale}}" href="" ng-click="setLanguage(language);" class="ng-binding" id="language-ja-jp">日本 - 日本語
Eesti - Eesti
Norge - Bokmål
United States (English)
香港特別行政區 - 繁體中文
El Salvador - Español
Panamá - Español
Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
://c1.microsoft.com/c.gif?DI=4050&did=1&t=">="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> t type="text/javascript" src="https://c.microsoft.com/ms.js">