โปรแกรมประยุกต์ ASP.NETสุทธิการร้องขอที่มีจำนวนมากที่แบบฟอร์มคีย์ แฟ้ม หรือสมาชิกในส่วนของข้อมูลของ JSON ล้มเหลว ด้วยข้อยกเว้น

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2661403 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

ความปลอดภัยของ Microsoft update จำกัด MS11-100 จำนวนสูงสุดของแบบฟอร์มคีย์ แฟ้ม และ JSON สมาชิกไป 1000 ในการร้องขอ HTTP เนื่องจากการเปลี่ยนแปลงนี้ ASPโปรแกรมประยุกต์สุทธิปฏิเสธการร้องขอที่มีมากกว่า 1000 ขององค์ประกอบเหล่านี้ ไคลเอ็นต์ของ HTTP ที่ทำการร้องขอแบบนี้จะถูกปฏิเสธการ และข้อผิดพลาดจะปรากฏขึ้นในเว็บเบราว์เซอร์ ข้อความแสดงข้อผิดพลาดมักจะมีรหัสสถานะ HTTP 500 ข้อผิด คุณสามารถกำหนดค่าขีดจำกัดนี้ใหม่โดยใช้พื้นฐานสำหรับแต่ละโปรแกรมประยุกต์ โปรดดูส่วน "การแก้ไข" สำหรับคำแนะนำการตั้งค่าคอนฟิก


อาการ

ASPสุทธิการร้องขอที่มีแบบฟอร์มคีย์ แฟ้ม หรือส่วนของข้อมูลของ JSON จำนวนมาก ได้รับการตอบสนองข้อผิดพลาดจากเซิร์ฟเวอร์ บันทึกของโปรแกรมประยุกต์บนเซิร์ฟเวอร์ที่มีรายการคำเตือนที่มีการ แหล่งที่มาASP รุ่นใดรุ่นหนึ่งที่อยู่สุทธิ และรหัสเหตุการณ์ 1309 แฟ้มบันทึกเหตุการณ์ประกอบด้วยข้อความแสดงข้อต่อไปนี้:


ข้อความที่ 1:
ข้อมูลโปรแกรมประยุกต์:
โดเมนของโปรแกรมประยุกต์: / LM/W3SVC/1/ราก /<App domain=""></App>
เชื่อถือระดับ: ปานกลาง
เส้นทางเสมือนของโปรแกรมประยุกต์:<VDIR path=""></VDIR>
เส้นทางของโปรแกรมประยุกต์:<App path=""></App>
ชื่อเครื่องจักร:<Machine name=""></Machine>
ประมวลผลข้อมูล:
การประมวลผลรหัส: 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 (dontReturnNull บูลีน)
ใน System.Web.UI.Page.DeterminePostBackMode()
ที่ System.Web.UI.Page.ProcessRequestMain (บูลีน' includeStagesBeforeAsyncPoint, includeStagesAfterAsyncPoint บูลีน)


ข้อความที่ 2:
ข้อมูลโปรแกรมประยุกต์:
โดเมนของโปรแกรมประยุกต์: / LM/W3SVC/1/ราก /<App domain=""><b00></b00></App>
เชื่อถือระดับ: ปานกลาง
เส้นทางเสมือนของโปรแกรมประยุกต์:<VDIR path=""><b00></b00></VDIR>
เส้นทางของโปรแกรมประยุกต์:<App path=""><b00></b00></App>
ชื่อเครื่องจักร:<Machine name=""></Machine>
 
ประมวลผลข้อมูล:
การประมวลผลรหัส: 0001
ชื่อของกระบวนการ: w3wp.exe
ชื่อบัญชีผู้ใช้: IIS APPPOOL\DefaultAppPool
 
รายละเอียดข้อยกเว้น:
ชนิดข้อยกเว้น: InvalidOperationException
ข้อยกเว้นข้อความ: การดำเนินการไม่ถูกต้องเนื่องจากการสถานะปัจจุบันของวัตถุ
ใน System.Web.HttpRequest.FillInFilesCollection()
ใน System.Web.HttpRequest.get_Files()
ที่ FileUpload.Page_Load (ผู้ส่งวัตถุ EventArgs e)
ที่ System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o วัตถุ วัตถุ t, EventArgs e)
ที่ System.Web.Util.CalliEventHandlerDelegateProxy.Callback (ผู้ส่งวัตถุ EventArgs e)
ที่ System.Web.UI.Control.OnLoad (EventArgs e)
ใน System.Web.UI.Control.LoadRecursive()
ที่ System.Web.UI.Page.ProcessRequestMain (บูลีน' includeStagesBeforeAsyncPoint

ข้อความที่ 3:
ข้อมูลโปรแกรมประยุกต์:
โดเมนของโปรแกรมประยุกต์: / LM/W3SVC/1/ราก /<App domain=""><b00></b00></App>
เชื่อถือระดับ: ปานกลาง
เส้นทางเสมือนของโปรแกรมประยุกต์:<VDIR path=""><b00></b00></VDIR>
เส้นทางของโปรแกรมประยุกต์:<App path=""></App>
ชื่อเครื่องจักร:<Machine name=""></Machine>
 
ประมวลผลข้อมูล:
การประมวลผลรหัส: 0001
ชื่อของกระบวนการ: 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 (ผู้ส่งวัตถุ EventArgs e)
ที่ System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o วัตถุ วัตถุ t, EventArgs e)
ที่ System.Web.Util.CalliEventHandlerDelegateProxy.Callback (ผู้ส่งวัตถุ EventArgs e)
ที่ System.Web.UI.Control.OnLoad (EventArgs e)
ใน System.Web.UI.Control.LoadRecursive()
ที่ System.Web.UI.Page.ProcessRequestMain (บูลีน' includeStagesBeforeAsyncPoint, includeStagesAfterAsyncPoint บูลีน)


แฟ้มบันทึก IIS แสดงรายการที่มีลักษณะต่อไปนี้:
2011-01-01 00:00:00:: 1 POST /machine/default.aspx - 80-:: 0 1 500 0 187




สาเหตุ

ความปลอดภัยของ Microsoft update ว่า ที่อยู่ในบูเลทีนการ MS11 100 ความปลอดภัยเปลี่ยนจำนวนสูงสุดของค่าเริ่มต้นของแบบฟอร์มคีย์ แฟ้ม และสมาชิก JSON ASP นั้นสุทธิจะยอมรับในการร้องขอเพื่อ 1000 ทำการเปลี่ยนแปลงนี้เพื่อเน้นความเสี่ยงปฏิเสธการให้บริการด้านการรักษาความปลอดภัยของ Microsoft บูเลทีนการ MS11 100 เอกสาร


การแก้ไข

โปรแกรมประยุกต์ที่ถึงขีดจำกัดนี้สำหรับแฟ้มหรือแบบฟอร์มคีย์สามารถปรับเปลี่ยนการ ASPสุทธิ appSetting aspnet:MaxHttpCollectionKeysดังแสดงด้านล่างในโปรแกรมประยุกต์ ASP.NETแฟ้มการกำหนดค่าของโปรแกรมประยุกต์สุทธิ การตั้งค่านี้ระบุถึงข้อผิดพลาดข้อความ 1 และข้อผิดพลาดข้อความ 2 จาก "อาการ" ส่วน
<configuration>
  <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="1000" />
  </appSettings>
</configuration>


หมายเหตุ ถ้าคุณกำลังใช้ ASP1.1 สุทธิ การตั้งค่าที่มีการปรับปรุง ด้วยการเพิ่มค่า DWORD ในคีย์รีจิสทรีต่อไปนี้:

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


โปรแกรมประยุกต์ที่ใช้ในการเข้าชมขีดจำกัดนี้สำหรับ JSON payloads สามารถปรับเปลี่ยนการ ASPสุทธิ appSettingaspnet:MaxJsonDeserializerMembersดังแสดงด้านล่างในโปรแกรมประยุกต์ ASP.NETแฟ้มการกำหนดค่าของโปรแกรมประยุกต์สุทธิ การตั้งค่านี้ระบุถึงส่วนของข้อความที่ 3 จาก "อาการ" ข้อผิดพลาด
<configuration>
  <appSettings>
    <add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
  </appSettings>
</configuration>



หมายเหตุเพิ่มค่านี้อยู่เหนือส่วนเพิ่มการตั้งค่าเริ่มต้น susceptibility ของเซิร์ฟเวอร์ของคุณเพื่อใช้ช่องโหว่การปฏิเสธการให้บริการที่ระบุไว้ในบูเลทีนการรักษาความปลอดภัย MS11-100


ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบูเลทีนการรักษาความปลอดภัย MS11-100 ดู TechNet บทความต่อไปนี้: สำหรับข้อมูลเพิ่มเติม คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2638420 MS11-100: ช่องโหว่ในตัวและส่งให้มีการยกระดับสิทธิ์: 29 ธันวาคม 2011

คุณสมบัติ

หมายเลขบทความ (Article ID): 2661403 - รีวิวครั้งสุดท้าย: 12 มกราคม 2555 - Revision: 2.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
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • 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 Edition
Keywords: 
atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB2661403 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2661403

ให้ข้อเสนอแนะ

 

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