Отнася се за.NET Framework 3.5 Service Pack 1 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 Server 2008 for Itanium-Based Systems Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Service Pack 2 Windows Vista Business Windows Vista Enterprise Windows Vista Home Basic Windows Vista Home Premium Windows Vista Starter Windows Vista Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business 64-bit Edition Microsoft Windows Server 2003 Service Pack 2 Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Service Pack 3 Microsoft Windows XP Home Edition Microsoft Windows XP Professional

Обобщена информация

Microsoft актуализацията MS11-100 граници максималния брой формуляри, файлове и JSON членове 1000 в HTTP заявка. Поради тази промяна приложения за ASP.NET отхвърлят заявките, които имат повече от 1000 от тези елементи. HTTP клиенти, които правят тези видове искания ще бъдат отхвърлени и съобщение за грешка ще се появи в уеб браузъра. Съобщение за грешка обикновено имат код за състояние на HTTP 500. Тази нова граница може да бъде конфигуриран на базата на приложение. Вижте раздела "Решение" за инструкции за конфигуриране.

Симптоми

ASP.NET заявки, които са много формуляри, файлове или товар JSON получавате съобщение за грешка отговор от сървъра. Регистрационния файл на сървъра има предупреждение запис с източник , който е определена версия на ASP.NET и Идентификатор на събитие на 1309. Събитията съдържа един от следните съобщения:

Съобщение 1:

Информация за приложението: приложение домейн: / LM/W3SVC/1/корен/< домейн на приложения > ниво на доверие: среда приложение виртуален път: < VDIR път > приложение път: < приложение път > машина име: < име на машина > процес информация: ИД на процеса: 0001 процес име: w3wp.exe акаунт име: информация за IIS APPPOOL\DefaultAppPool изключение: тип изключение: съобщение HttpException изключение: URL кодиран формуляра е невалиден. в System.Web.HttpRequest.FillInFormCollection () в System.Web.HttpRequest.get_Form () в System.Web.HttpRequest.get_HasForm () в System.Web.UI.Page.GetCollectionBasedOnMethod (Boolean dontReturnNull) в System.Web.UI.Page.DeterminePostBackMode () в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Съобщение 2:

Информация за приложението: приложение домейн: / LM/W3SVC/1/корен/< домейн на приложения > ниво на доверие: среда приложение виртуален път: < VDIR път > приложение път: < приложение път > машина име: < име на машина > процес информация: ИД на процеса: 0001Process име: w3wp.exe акаунт име: информация за IIS APPPOOL\DefaultAppPool изключение: тип изключение: съобщение InvalidOperationException изключение: операцията е невалидна поради текущото състояние на обекта. в System.Web.HttpRequest.FillInFilesCollection () в System.Web.HttpRequest.get_Files () в FileUpload.Page_Load (Object sender, EventArgs e) в System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o обект, обект t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) в System.Web.UI.Control.OnLoad (EventArgs e) в System.Web.UI.Control.LoadRecursive () в System.Web.UI.Page.ProcessRequestMain (булев includeStagesBeforeAsyncPoint

Съобщението:

Приложението информация: приложение домейн: / LM/W3SVC/1/корен/< домейн на приложения > ниво на доверие: среда приложение виртуален път: < VDIR път > приложение път: < приложение път > машина име: < име на машина > процес информация: Идентификатор на процес: 0001Process име: w3wp.exe акаунт име: информация за IIS APPPOOL\DefaultAppPool изключение: тип изключение: съобщение InvalidOperationException изключение: операцията е невалидна поради текущото състояние на обекта. в System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 дълбочина) в System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 дълбочина) в System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (въвеждане на низ, Int32 depthLimit, JavaScriptSerializer програмата за сериализация) в System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer програма за сериализация, въвеждане на низ, тип, Int32 depthLimit) в System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (низ вход) в Failing.Page_Load (Object sender, EventArgs e) в System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o обект, обект t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) в System.Web.UI.Control.OnLoad (EventArgs e) в System.Web.UI.Control.LoadRecursive () в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Регистрационният файл на IIS показва запис, подобно на следното:

2011-01-01 00:00:00:: 1 POST /machine/default.aspx - 80 -:: 1 500 0 0 187

Причина

Актуализация на сигурността на Microsoft сигурност бюлетин MS11-100 адреси промените по подразбиране максималния брой формуляри, файлове и JSON членове на ASP.NET ще приеме искане до 1000. Тази промяна е направена за справяне с уязвимостта отказ на услуга, Microsoft сигурност бюлетин MS11-100 документи.

Решение

Приложения, достигне това ограничение за формуляри или файлове, които могат да променят ASP.NET appSetting aspnet:MaxHttpCollectionKeys, както е показано по-долу в приложение на ASP.NET конфигурационния файл. Тази настройка е предназначена грешка съобщение 1 и грешка съобщение 2 от раздела "симптоми" раздел.

<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>

Забележка Ако използвате ASP.NET 1.1 в система, базирана на x86, настройката се коригира чрез добавяне на DWORD стойност в следния ключ на системния регистър:

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

Ако използвате ASP.NET 1.1 в система, базирана на x64, настройката се коригира чрез добавяне на DWORD стойност в следния ключ на системния регистър:

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

Приложения, натиснете този лимит за JSON вида полезни данни да модифицирате ASP.NET appSetting aspnet:MaxJsonDeserializerMembers, както е показано по-долу в приложение на ASP.NET конфигурационния файл. Тази настройка е предназначена грешка съобщение 3 от раздела "симптоми" раздел.

<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>

Забележка Увеличаване на тази стойност над увеличаване на настройката по подразбиране чувствителност на вашия сървър за уязвимост отказ на услуга, която се обсъжда в бюлетина за сигурността MS11-100.

Препратки

За повече информация относно бюлетин за сигурността MS11-100 вижте следната статия на TechNet:

Microsoft Security Bulletin MS11-100 - критичниЗа допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2638420 MS11-100: Уязвимост в .NET Framework може да позволи повишаване на правата: 29 декември 2011 г.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.