ดูผลิตภัณฑ์และระบบปฏิบัติการที่ใช้ในบทความนี้ บทความนี้อธิบายถึงการรวบรวมโปรแกรมแก้ไขด่วน 3139551 ที่พร้อมใช้งานสำหรับ Microsoft .NET Framework 4.6.1 การและ 4.6 กรอบงาน.NET ที่เกี่ยวกับ Windows 7 Service Pack 1 (SP1), Windows Server 2008 R2 SP1, Windows Server 2008 SP2 และ Windows Vista SP2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขปัญหาในการยกเลิกโปรแกรมแก้ไขด่วนนี้ ดูส่วน "ปัญหาที่แก้ไขยกเลิกโปรแกรมแก้ไขด่วนนี้"
การแก้ปัญหา
ข้อมูลการดาวน์โหลด
แฟ้มต่อไปนี้จะสามารถดาวน์โหลดได้จากศูนย์ดาวน์โหลดของ Microsoft:
ดาวน์โหลดแพคเกจโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการดาวน์โหลดแฟ้มสนับสนุนของ Microsoft ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปยังบทความในฐานความรู้ของ Microsoft:
119591วิธีการขอรับแฟ้มสนับสนุนของ Microsoft จากบริการออนไลน์Microsoft สแกนแฟ้มนี้เพื่อหาไวรัสแล้ว Microsoft ใช้ซอฟต์แวร์ตรวจสอบไวรัสที่เป็นปัจจุบันที่สุดซึ่งพร้อมใช้งานตั้งแต่วันที่ซึ่งมีการประกาศแฟ้มนี้ แฟ้มนี้ถูกจัดเก็บไว้ในเซิร์ฟเวอร์ที่เพิ่มการรักษาความปลอดภัยซึ่งช่วยป้องกันการเปลี่ยนแปลงใด ๆ ที่ไม่ได้รับอนุญาตต่อแฟ้มดังกล่าว
ข้อมูลเพิ่มเติม
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี.NET Framework 4.6.1 การหรือ 4.6 กรอบงาน.NET ติดตั้งอยู่
ข้อกำหนดการรีสตาร์ท
คุณต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้ถ้ามีการใช้แฟ้มที่ได้รับผลกระทบใด ๆ เราขอแนะนำให้ คุณปิดโปรแกรมประยุกต์ที่ใช้.NET Framework ทั้งหมดก่อนที่จะใช้โปรแกรมแก้ไขด่วนนี้
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
แพคเกจโปรแกรมแก้ไขด่วนนี้ไม่แทนแพคเกจโปรแกรมแก้ไขด่วนที่ออกมาก่อนหน้านี้
การตัดสินค้าจากคลังที่แก้ไขยกเลิกโปรแกรมแก้ไขด่วนนี้
ปัญหาที่ 1
เมื่อโปรแกรมประยุกต์ WPF ที่ใช้TreeViewItemนอกจากเป็นTreeViewแอพลิเคชันสามารถพบInvalidCastExceptionมีข้อยกเว้นที่มีการติดตามสแต็คที่เริ่มต้นเป็นดังนี้:
System.Windows.Controls.VirtualizingStackPanel.FindScrollOffset(Visual v) หมายเหตุ ข้อยกเว้นนี้เกิดขึ้นเมื่อTreeViewItemอยู่ในตัวควบคุมรายการที่ถูกสร้างเสมือน (ตัวอย่าง ควบคุมListBox, DataGridหรือมุมมองรายการ) ที่พยายามค้นหาออฟเซ็ตการเลื่อนของTreeViewItemหรือหนึ่งยังลูกหลาน ตัวอย่างเช่น ข้อยกเว้นนี้เกิดขึ้นถ้าคุณประกาศการTreeViewItemเป็นรากของการDataTemplateและDataTemplateถูกใช้เป็นCellTemplateของDataGridคอลัมน์ปัญหาที่ 2
ทั้งSystem.Web.CachingและSystem.Runtime.Cachingรายงานขนาดของหน่วยความจำที่ถูกใช้ โดย AppDomain ทั้งแทนที่เป็นหน่วยความจำที่ถูกใช้ โดยรายการแคช
นี่คือการถดถอยจาก 4.5 กรอบงาน.NET ได้เนื่องจาก มีการเปลี่ยนแปลงในการใช้งานตัวจับเวลา นอกเหนือจากรายงานขนาดไม่ถูกต้อง เพิ่มเติมวัตถุที่อ้างอิง โดยแคสามารถมากมีผลกระทบต่อเวลาแฝง GC gen2 ใน ASP.NET ที่เป็นโฮสต์ของสถานการณ์จำลอง แคยัง miscalculated ขนาดของแคชทั้งหมดในโดเมนโปรแกรมประยุกต์ทั้งหมด (ตามที่รายงานโดยใช้ตัวนับประสิทธิภาพการทำงาน ASP.NET "แคช%ขีดจำกัดหน่วยความจำที่กระบวนการใช้") ได้เมื่อนำของโดเมนโปรแกรมประยุกต์ แก้ไขนี้ลบข้อมูลอ้างอิงที่ไม่ได้ตั้งใจจากแคกับแอพลิเคชันโดเมนวัตถุอื่น ๆ เพื่อให้มีรายงานขนาดถูกต้อง การแก้ไขนี้ยังรวมถึงการเปลี่ยนแปลงเพื่อปรับปรุงเวลาแฝงที่ใช้สำหรับ System.Runtime.Caching บนคอมพิวเตอร์แบบมัลติคอร์ที่ใช้เซิร์ฟเวอร์ GC นอกจากนี้ หลังจากมีใช้การแก้ไขนี้ ขนาดของแคชทั้งหมดในโดเมนโปรแกรมประยุกต์กลับสถานการณ์สมมติถูกคำนวณอย่างถูกต้องปัญหาที่ 3
เมื่อคุณมีแอพลิเคชันที่ Windows นำเสนอพื้นฐาน (WPF) ที่ต้องใช้เมาส์ส่งเสริมการขายด้วยการสัมผัสย้ายการจัดการการโต้ตอบผู้ใช้ด้วยการสัมผัส (แทนที่เป็นโดย ตรงโดยใช้สัมผัสเหตุการณ์), คุณอาจพบการระดับเสียงเบาผิดปกติย้ายเมาส์ถูกเลื่อนระดับ
ก่อนหน้านี้ โปรโมชันเมาส์ WPF ควบคุมปริมาณของสัมผัสย้ายเพื่อหลีกเลี่ยงการสัมผัสจำนวนมากย้าย overwhelm ผู้จัดส่ง ใน.NET Framework 4.6.1 การ การแก้ไขถูกนำมาใช้เพื่อควบคุมปริมาณจำนวนสัมผัสย้ายที่จะประมวลผล หลังจากการเปลี่ยนแปลง การควบคุมปริมาณของเมาส์โปรโมชันที่เป็นสาเหตุให้มีการลดเพิ่มเติมหมายเลขของเมาส์ย้ายที่สร้างขึ้น ขณะนี้ถูกเอาออกการควบคุมปริมาณของโปรโมชันเมาส์เพื่อว่าควรเกือบติดต่อแบบหนึ่งต่อหนึ่งระหว่างเหตุการณ์ย้ายสัมผัสและเหตุการณ์เคลื่อนย้ายเมาส์เพิ่มระดับปัญหาที่ 4
สมมติว่า คุณกำลังทำงานบนโปรแกรมประยุกต์ WPF 4.6 กรอบงาน.NET ที่เป้าหมาย คุณพยายามตั้งค่าCurrentThread.CurrentCultureหรือCurrentThread.CurrentUICultureในวิธีใด ๆ ที่ถูกเรียกใช้ โดยผู้จัดส่ง WPF โดยใช้ DispatcherOperation ตัว ตัวอย่างเช่น คุณพยายามตั้งค่านี้ในตัวจัดการเหตุการณ์ UI หรือคอนสตรัคเตอร์ที่ MainWindow ในสถานการณ์นี้ ค่าCurrentCultureและCurrentUICultureถูกตั้งค่าใหม่เป็นค่าก่อนหน้านี้ตามลำดับที่ส่วนท้ายของวิธีการ ถ้าแอพลิเคชันตั้งค่าCurrentUICultureในคอนสตรัคเตอร์ของ MainWindow หรือ ในตัวจัดการปุ่มคลิก การตั้งค่าที่เปลี่ยนเป็นระบบภาษาของ UI
การแก้ไขนี้ทำให้แน่ใจว่า ค่าCurrentThread.CurrentCulture/CurrentUICultureที่ถูกตั้งค่าในเมธอดในโปรแกรมประยุกต์ WPF คงอยู่ในลักษณะเดียวกันเหมือนก่อน 4.6 กรอบงาน.NET กับปัญหาที่ 5
ใน 4.6 กรอบงาน.NET ค่าสถานะใหม่TaskContinuationOptions.RunContinuationsAsynchronouslyถูกเพิ่มลงในไลบรารีของงาน อย่างไรก็ตาม เมื่อคุณใช้ค่าสถานะนี้ร่วมกับTask.WhenAll, Task.WhenAnyหรือTask.Unwrapค่าสถานะจะไม่มีผล ค่าสถานะถูกนำมาใช้เพื่อหลีกเลี่ยงเงื่อนไขบางเงื่อนไขการชะงักงัน การแก้ไขนี้ทำให้แน่ใจว่า ชนิดทั้งหมดของงาน continuations ตามค่าสถานะใหม่
ปัญหาที่ 6
ใน 4.6 กรอบงาน.NET ไม่มีจุดบกพร่องใน AppContext ซึ่งเป็นสาเหตุของความปลอดภัยให้กับเธรดของวิธีการ AppContext จะนำมาใช้อย่างไม่ถูกต้อง AppContext เป็นส่วนหนึ่งของโครงสร้างพื้นฐานเพื่อลดการเปลี่ยนแปลงการแบ่ง คุณสามารถใช้ AppContext เพื่อตั้งค่า และการเรียกคืนค่าสถานะ และ การตัดสินใจในโปรแกรมประยุกต์ของคุณโดยยึดตามข้อมูลที่
การแก้ไขนี้เปิดใช้งานความปลอดภัยเธรดที่ถูกต้องสำหรับวิธีการบน AppContext ที่เกี่ยวข้องกับการตั้งค่าและเรียกค่า switchปัญหาที่ 7
เมื่อคุณพบปัญหา กรณีมีขอบที่มีการปันส่วน และรูปแบบ survival และคุณ ต้องการเซกเมนต์ใหม่บนฮีปของคุณที่มีการจัดการ ตัวเก็บกวาดสามารถคำนวณขนาดที่ใช้ได้ที่มีขนาดเล็กกว่าก่อน ซึ่งทำให้การละเมิดการเข้าถึงระหว่างขั้นตอนการกระชับข้อมูลได้เนื่องจากตัวเก็บกวาดกำลังพยายามเขียนไปยังหน่วยความจำที่ไม่ได้ผูกมัด
การแก้ไขนี้คำนวณขนาดได้อย่างถูกต้องปัญหาที่ 8
เมื่อคุณสร้างรหัสท้องถิ่นบางวิธีการ แอพลิเคชันของ.NET Framework และกระบวนการ NGEN อาจพบการเกิดความผิดพลาดที่ไม่คาดคิด
ปัญหาที่ 9
RyuJit สร้างคำแนะนำที่ถูกต้องเพื่อเปรียบเทียบจำนวนเต็มไม่มีลายเซ็น 16 บิตบนเครื่องบันทึกเงินสด ซึ่งก่อให้เกิดผลลัพธ์ไม่ถูกต้อง ถ้าค่าที่ป้อนเข้ามีค่า MSB ที่แตกต่างกัน และคำแนะนำในการเปรียบเทียบที่สร้างขึ้นใช้ตัวถูกดำเนินการลงทะเบียน
การแก้ไขนี้สร้างคำแนะนำที่ถูกต้องนำไปใช้กับ
บทความนี้ใช้ต่อไปนี้:
-
Microsoft .NET Framework 4.6.1 การ
-
Microsoft .NET Framework 4.6 เมื่อใช้กับ:
-
Windows 7 Service Pack 1
-
Windows Server 2008 R2 Service Pack 1
-
Windows Server 2008 Service Pack 2
-
Windows Vista Service Pack 2
-