בקשת ASP.NET שיש לה הרבה מפתחות צורה, קבצים או חברי מטען JSON נכשלת עם חריגה

תרגומי מאמרים תרגומי מאמרים
Article ID: 2661403 - View products that this article applies to.
הרחב הכל | כווץ הכל

תקציר

עדכון אבטחה MS11-100 של Microsoft מגביל את המספר המרבי של מפתחות צורה, קבצים וחברי JSON ל- 1000 בבקשת HTTP. עקב שינוי זה, יישומי ASP.NET דוחים בקשות שיש בהן יותר מ- 1000 מרכיבים אלה. לקוחות HTTP שמבצעים בקשות כאלה יידחו, והודעת שגיאה תופיע בדפדפן האינטרנט. הודעה השגיאה תכלול בדרך כלל קוד מצב HTTP 500. ניתן לקבוע את התצורה של מגבלה זו לפי היישום. עיין בסעיף "פתרון" לקבלת הוראות לקביעת תצורה.


מאפייני הבעיה

בקשות ASP.NET עם הרבה מפתחות צורה, קבצים או מטעני JSON מקבלים תגובת שגיאה מהשרת. ליומן הרישום 'יישום' בשרת יש ערך 'אזהרה' עם מקור שהוא גירסה ספציפית של ASP.NET, ומזהה אירוע של 1309. יומן האירועים מכיל אחת מההודעות הבאות:


הודעה 1:
פרטי יישום:
תחום יישום: /LM/W3SVC/1/ROOT/<App Domain>
רמת אמון: בינונית
נתיב וירטואלי של היישום: <VDIR Path>
נתיב יישום: <App Path>
שם מחשב: <שם מחשב>
פרטי תהליך:
מזהה תהליך: 0001
שם תהליך: w3wp.exe
שם חשבון: IIS APPPOOL\DefaultAppPool

פרטי חריגה:
סוג חריגה: HttpException
הודעה על חריגה: נתוני צורה בקידוד URL אינם חוקיים.
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)


הודעה 2:
פרטי יישום:
תחום יישום: /LM/W3SVC/1/ROOT/<App Domain>
רמת אמון: בינונית
נתיב וירטואלי של היישום: <VDIR Path>
נתיב יישום: <App Path>
שם מחשב: <שם מחשב>

פרטי תהליך:
מזהה תהליך: 0001
שם תהליך: w3wp.exe
שם חשבון: IIS APPPOOL\DefaultAppPool

פרטי חריגה:
סוג חריגה: InvalidOperationException
הודעה על חריגה: הפעולה אינה חוקית עקב המצב הנוכחי של האובייקט.
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

הודעה 3:
פרטי יישום:
תחום יישום: /LM/W3SVC/1/ROOT/<App Domain>
רמת אמון: בינונית
נתיב וירטואלי של היישום: <VDIR Path>
נתיב יישום: <App Path>
שם מחשב: <שם מחשב>

פרטי תהליך:
מזהה תהליך: 0001
שם תהליך: w3wp.exe
שם חשבון: IIS APPPOOL\DefaultAppPool

פרטי חריגה:
סוג חריגה: InvalidOperationException
הודעה על חריגה: הפעולה אינה חוקית עקב המצב הנוכחי של האובייקט.
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 מציג ערך שדומה לערך הבא:
2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




סיבה

עדכון האבטחה של Microsoft שעלון האבטחה MS11-100 עוסק בו משנה את מספר המקסימום שנקבע כברירת מחדל של מפתחות צורה, קבצים וחברי JSON ש- ASP.NET יקבל בבקשה ל- 1,000. שינוי זה בוצע כדי לטפל בפגיעות של מניעת שירות שעלון האבטחה MS11-100 של Microsoft מתעד.


פתרון הבעיה

יישום המגיעים למגבלה זו עבור מפתחות צורה או קבצים יכולים לשנות את 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 הבא:
עלון האבטחה MS11-100 של Microsoft - קריטי
לקבלת מידע נוסף, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
2638420 MS11-100: פגיעות ב-.NET Framework עלולה לאפשר העלאת רמת הרשאות: 29.12.11
הערה זהו מאמר "פרסום מהיר" שנוצר ישירות מתוך ארגון התמיכה של Microsoft. המידע הכלול במסמך זה מסופק כפי שהוא בתגובה לבעיות שצצות. לאור הקצב המהיר של פרסום החומרים, ייתכן שהחומרים יכללו שגיאות הקלדה ואנו עשויים לתקן אותם בכל עת, ללא הודעה מוקדמת. למידע על שיקולים אחרים, עיין בתנאי השימוש.

מאפיינים

Article ID: 2661403 - Last Review: יום חמישי 29 נובמבר 2012 - Revision: 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 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 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 Web Server 2008
  • 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 Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Service Pack 3, הפועל עם:
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
מילות מפתח 
atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability KB2661403

ספק משוב

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com