Applies ToWindows 8 Windows RT Windows Server 2012 Standard Windows Server 2012 Standard

การใช้การยกเลิกโปรแกรมแก้ไขด่วนนี้ ไปที่บทความฐานข้อมูลองค์ความรู้ต่อไปนี้ และดาวน์โหลดโปรแกรมแก้ไขด่วนถูกต้องค่าสะสม:

2925383ค่าสะสมของโปรแกรมแก้ไขด่วน 2925383 จะพร้อมใช้งานสำหรับ.NET Framework 4.5.1 ใน Windows

บทนำ

บทความนี้อธิบายถึงการรวบรวมโปรแกรมแก้ไขด่วน 2908385 ที่พร้อมใช้งานสำหรับ Microsoft .NET Framework 4.5.1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่โปรแกรมแก้ไขด่วนแก้ไข ดูส่วน "ข้อมูลเพิ่มเติม"ยกเลิกโปรแกรมแก้ไขด่วนนี้จะพร้อมใช้งานสำหรับระบบปฏิบัติการต่อไปนี้:

  • Windows 8

  • Windows Server 2012

ข้อมูลเพิ่มเติม

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก Microsoft อย่างไรก็ตาม มีจุดมุ่งหมายที่จะแก้ไขเฉพาะปัญหาที่บทความนี้อธิบายไว้เท่านั้น นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้นหากต้องการแก้ไขปัญหานี้ ให้ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายสนับสนุน แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:

http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ในกรณีพิเศษ ค่าบริการที่เรียกเก็บตามปกติเมื่อโทรติดต่อฝ่ายสนับสนุนอาจจะยกเลิกได้หาก Microsoft Support Professional ตัดสินว่าโปรแกรมปรับปรุงที่เฉพาะเจาะจงจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง

ข้อกำหนดเบื้องต้น

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี.NET Framework 4.5.1 ที่ติดตั้งอยู่

ข้อกำหนดการรีสตาร์ท

คุณต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้ถ้ามีการใช้แฟ้มที่ได้รับผลกระทบใด ๆ เราขอแนะนำให้ คุณปิดโปรแกรมประยุกต์ที่ใช้.NET Framework ทั้งหมดก่อนที่จะใช้โปรแกรมแก้ไขด่วนนี้

ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน

แพคเกจโปรแกรมแก้ไขด่วนนี้ไม่ได้แทนแพคเกจโปรแกรมแก้ไขด่วนที่ออกมาก่อนหน้านี้

การตัดสินค้าจากคลังที่แก้ไขยกเลิกโปรแกรมแก้ไขด่วนนี้

ปัญหาที่ 1

Symptomsสมมติว่า คุณเรียกวิธีApplication.DoEvents()จากตัวจัดการเหตุการณ์ValueChangedของตัวควบคุมNumericUpDown ตัวอย่างเช่น คุณสามารถใช้รหัสต่อไปนี้:private void numericUpDown1_ValueChanged(object sender, EventArgs e){ for (int i = 0; i < 10; i++) { Application.DoEvents(); Thread.Sleep(10); } } เมื่อตั้ง หรือปุ่มลูกศรค้างกดหลายวินาที ตัวจับเวลาการสร้างทีซ้ำหรือ decrements ที่สร้างตัวควบคุม Application.DoEventsขีดตัวจับเวลาถูกจัดการอีกครั้ง ซึ่งทำให้เกิดเหตุการณ์ValueChangedใหม่ แล้ว คุณสามารถป้อนตัวจัดการเหตุการณ์ขีดตัวจับเวลา เมื่อปล่อยปุ่มเมาส์ ตัวจับเวลาถูกทำลายในตัวจัดการที่ด้านล่างของกองซ้อน แต่แล้ว ถูกนำมาใช้ใหม่อีกครั้งเป็นกองซ้อนจะถูก unwound โดยที่ตัวจัดการอื่น ๆ ทำให้มีข้อยกเว้นของการอ้างอิงที่ว่างและความเสียหาย

วิธีแก้ปัญหาเมื่อต้องการหลีกเลี่ยงปัญหานี้ ใช้BeginInvokeเพื่อเรียกแบบอะซิงโครนัส() Application.DoEventsหลังจากที่มีการประมวลผลเหตุการณ์ถึงเวลา ตัวอย่างเช่น ใช้คลาสดังต่อไปนี้เพื่อแทนลักษณะการทำงานเริ่มต้น:public class MyNumericUpDown : System.Windows.Forms.NumericUpDown{ public NumericUpDown() : base() { } protected override void OnValueChanged(EventArgs e) { // run the handler as a separate event to prevent re-entrance to prevent a NullRef when hitting. if (IsHandleCreated) BeginInvoke(new Action(() => base.OnValueChanged(e))); else base.OnValueChanged(e); }} หมายเหตุ โดยทั่วไปแล้ว เราไม่แนะนำให้ คุณใส่วนข้อความ (Application.DoEvents) จากตัวจัดการข้อความที่ (ValueChangedยกกำลังจากตัวจัดการข้อความTimer.OnTick ), เนื่องจากนี้อาจทำให้ข้อมูลเกินสแตก ตัวอย่างเช่น ช่วงของตัวควบคุมNumericUpDownมีขนาดใหญ่ และผู้ใช้มีปุ่มลูกศรค้างเป็นเวลานาน ใช้BeginInvokeเพื่อหลีกเลี่ยงการข้อมูลเกินสแตก โปรแกรมแก้ไขด่วนนี้แก้ปัญหานี้

ปัญหาที่ 2

อาการ

ข้อความที่จัดรูปแบบคัดลอกจากเอกสาร XPS ยาวอาจใช้เวลาหลายนาที ขึ้นอยู่กับตำแหน่งของข้อความภายในเอกสาร และอาจทำให้แอพลิเคชันเมื่อต้องการตรึงCauseปัญหานี้เกิดขึ้นเนื่องจากการประกาศการจัดรูปแบบบางอย่างจำเป็นต้องมีการสแกนเอกสารตั้งแต่เริ่มต้นจนถึงการเลือกที่ต้องการ รายงานเหล่านี้จะไม่ค่อย (เหล่านั้นมาจากองค์ประกอบแบบกำหนดเองที่มีแอตทริบิวต์TextElementEditingBehaviorAttributeที่ถูกทำเครื่องหมายIsTypographicOnly)ตรรกะมีการเปลี่ยนแปลงในโปรแกรมแก้ไขด่วนนี้เพื่อหลีกเลี่ยงการสแกนมีราคาแพงเมื่อประกาศดังกล่าวปรากฏในส่วนที่เลือกที่ต้องการ

ปัญหาที่ 3

อาการ

TextBlock Windows นำเสนอพื้นฐาน (WPF) อาจแสดงอย่าง น้อยหนึ่งอักขระที่ส่วนท้ายของข้อความ ปัญหานี้เกิดขึ้นเมื่อตรงตามเงื่อนไขต่อไปนี้:

  • TextWrapping หรือ TextTrimming จะเปิดใช้งาน

  • ช่องว่างภายในศูนย์ หรือ TextFormattingMode เป็น "แสดง"

  • ความกว้างไม่ได้ตั้งค่า หรือถูกตั้งค่าเป็น "อัตโนมัติ"

  • FontFamily ขนาดแบบอักษร และอักขระที่ระบุในข้อความทำให้มีความกว้าง unfavorable

Causeปัญหานี้เกิดขึ้นเนื่องจาก inaccuracies เป็นตัวเลข (ปัดเศษข้อผิดพลาด) ที่อาจเกิดขึ้นได้เมื่อคำนวณความกว้างของข้อความ การแปลงความกว้างระหว่างระบบพิกัดภายใน การลงบัญชีสำหรับช่องว่างภายใน และการจัดตำแหน่งข้อความกับขอบเขตของพิกเซลสำหรับโหมดการแสดงผลมีการเพิ่มการป้องกัน inaccuracies ต่าง ๆ เหล่านี้เพื่อประมวลผล เพื่อให้แน่ใจว่า จะมีแสดงอักขระที่ควรจะแสดงขึ้น

ปัญหาที่ 4

ตรึงวัตถุอาจทำให้เกิดการแยกหน่วยความจำมากเกินไปฮีป ก่อให้เกิดการลดลงของประสิทธิภาพ การแก้ไขนี้มีการนำประสิทธิภาพของหน่วยความจำบัฟเฟอร์ ซึ่งมีการกระจายตัวของหน่วยความจำฮีปย่อหน้า

ปัญหาที่ 5

บางครั้ง โปรแกรมประยุกต์สามารถพบข้อยกเว้นการละเมิดการเข้าถึงในระหว่าง AppDomain ปิดลงหลังจากดำเนินการรวบรวมขยะพื้นหลัง

ปัญหาที่ 6

เครื่องมือวินิจฉัยที่ทำ IL instrumentation โดยใช้ API การสร้างโพรไฟล์อาจทำให้เกิดข้อยกเว้นที่ไม่สามารถจัดการได้ดังต่อไปนี้เมื่อต้องการขึ้น โดยรันไทม์ภาษาทั่วไป (CLR):

0X80131401 " = SECURITY_E_INCOMPATIBLE_SHARE กำลังโหลดแอสเซมบลีนี้จะทำให้เกิดเงินช่วยเหลืออื่นตั้งจากอินสแตนซ์อื่น

นอกจากนี้ กระบวนการล้มเหลว ปัญหานี้เกิดขึ้นเฉพาะเมื่อคุณใช้เครื่องมือวินิจฉัย

ปัญหาที่ 7

เมื่อคุณใช้จุดเพิ่มความสามารถHttpMessageHandlerของ Windows สื่อสารพื้นฐาน (WCF) 4.5 (หรือที่เรียกอีกอย่างหนึ่งว่า WCF HTTP ไปป์ไลน์), หัวข้อการพิสูจน์ตัวจริงของเว็บไซต์ไม่สามารถตั้งค่าHttpRequestMessageหรือHttpResponseMessage เป็นเช่นนี้ เพราะจุดเพิ่มความสามารถของHttpMessageHandlerใหม่ใช้กลไกอื่นสำหรับการจัดการหัวข้อหลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ กลไกที่สองเมื่อต้องการเพิ่มส่วนหัวถูกนำไปพาริตี้ และหนึ่งควรจะสามารถเพิ่มส่วนหัวของการรับรองความถูกต้อง WWW อีกครั้ง

ปัญหาที่ 8

มีข้อยกเว้นของNullReferenceExceptionถูกส่งออกจากวิธีการSqlInternalConnectionTds.BreakConnection โปรแกรมแก้ไขด่วนนี้ช่วยแก้ปัญหาเกี่ยวกับเวลาที่นำไปNullReferenceExceptionข้อยกเว้น

ปัญหาที่ 9

อาการสมมติว่า คุณมีโปรแกรมประยุกต์ WCF ที่ใช้คลาสBinaryMessageEncoderและตัวเข้ารหัสใช้ระเบียน UTF-8 ยึดข้อต่อ[MC-NBFX] หรือ สมมติว่า คุณมีโปรแกรมประยุกต์ WCF ที่ใช้วิธีการSystem.ServiceModel.Channels.Message.CreateBufferedCopy ข้อความถูกประมวลผลที่ประกอบด้วยอักขระในช่วง U + 10000 กับ U + 10FFFF (รวม) ซึ่งแสดงใน UTF-8 เป็นลำดับ 4 ไบต์ ในสถานการณ์นี้ อาจสูญเสียการเข้ารหัสข้อความไบนารี และคุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderExceptionFallback'.Parameter name: charsat System.Text.Encoding.ThrowCharsOverflow()at System.Text.Encoding.ThrowCharsOverflow(DecoderNLS decoder, Boolean nothingDecoded)at System.Text.UTF8Encoding.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, DecoderNLS baseDecoder)at System.Text.DecoderNLS.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, Boolean flush)at System.Text.DecoderNLS.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex, Boolean flush)at System.Text.DecoderNLS.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex)at System.Xml.ValueHandle.TryReadChars(Char[] chars, Int32 offset, Int32 count, Int32& actual)at System.Xml.XmlBaseReader.ReadValueChunk(Char[] chars, Int32 offset, Int32 count)at System.Xml.XmlBinaryWriter.WriteTextNode(XmlDictionaryReader reader, Boolean attribute)at System.Xml.XmlDictionaryWriter.WriteNode(XmlDictionaryReader reader, Boolean defattr)at System.ServiceModel.Channels.ReceivedMessage.OnWriteBodyContents(XmlDictionaryWriter writer)at System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer)at System.ServiceModel.Channels.Message.OnCreateBufferedCopy(Int32 maxBufferSize, XmlDictionaryReaderQuotas quotas)at System.ServiceModel.Channels.StreamedMessage.OnCreateBufferedCopy(Int32 maxBufferSize)at System.ServiceModel.Channels.Message.CreateBufferedCopy(Int32 maxBufferSize)at ConsoleApplication1.BufferRequestChannel.WrappingRequestContext.BufferMessage() เมื่อปัญหานี้เกิดขึ้น ไคลเอนต์หมดเวลา โดยไม่มีการตอบสนองถ้าโปรแกรมประยุกต์ WCF ที่โฮสต์ด้วยตนเอง ถ้าโปรแกรมประยุกต์ WCF ที่ โฮสต์เว็บ (ASP.NET), ไคลเอนต์จะได้รับข้อผิดพลาดเซิร์ฟเวอร์ 500

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากรายละเอียดการใช้งานภายในที่จัดสรรเนื้อที่ว่างไม่เพียงพอในบางครั้งเมื่อป้อนลำดับของอักขระ UTF-8 4 ไบต์จะถูกถอดรหัส

การแก้ปัญหา

เมื่อต้องการแก้ไขปัญหานี้ ใช้โปรแกรมแก้ไขด่วน หลังจากใช้โปรแกรมแก้ไขด่วน โปรแกรมประยุกต์ WCF จะรอต่อไปอ่านวิธีการถอดรหัสอักขระถ้ามีเนื้อที่ว่างไม่เพียงพอในบัฟเฟอร์ขาออกเพื่อถอดรหัสอักขระ Unicode สัญลักษณ์

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย