หมายเหตุ
- วันที่เผยแพร่:
31 กรกฎาคม 2020 - เวอร์ชัน:
.NET Framework 3.5 และ 4.8
การอัปเดตของวันที่ 31 กรกฎาคม 2020 สําหรับ Windows 10 เวอร์ชัน 2004 มีการปรับปรุงความน่าเชื่อถือแบบสะสมใน .NET 3.5 และ 4.8 เราขอแนะนําให้คุณใช้การอัปเดตนี้โดยเป็นส่วนหนึ่งของกิจวัตรการบํารุงรักษาเป็นประจําของคุณ ก่อนที่คุณจะติดตั้งการอัปเดตนี้ ให้ดูส่วนข้อกําหนดเบื้องต้นและความต้องการการเริ่มระบบใหม่
การปรับปรุงคุณภาพและความน่าเชื่อถือ
| CLR1 | - การเปลี่ยนแปลงในสถานการณ์ EnterpriseServices บางสถานการณ์ที่.NET Framework 4.8 ถดถอยซึ่งวัตถุอพาร์ตเมนต์แบบเธรดเดียวอาจถือว่าเป็นอพาร์ตเมนต์แบบหลายเธรดและนําไปสู่ความล้มเหลวในการบล็อก ขณะนี้การเปลี่ยนแปลงนี้ระบุวัตถุอพาร์ตเมนต์แบบเธรดเดี่ยวได้อย่างถูกต้องแล้ว และหลีกเลี่ยงความล้มเหลวนี้ - แก้ไขปัญหาในแอสเซมบลีที่มีข้อมูลโปรไฟล์ IBC ทําให้กระบวนการของผู้ปฏิบัติงาน Ngen หยุดทํางานและย้อนกลับไปเป็นรูปภาพดั้งเดิมแบบเต็ม - แก้ไขปัญหาการหยุดทํางานที่เกิดขึ้นได้ยากระหว่างการหยุดการส่งเธรด |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer อาจทําให้ธุรกรรมในตาราง SQL ในหน่วยความจําล้มเหลว ไคลเอ็นต์อาจเห็นข้อยกเว้นที่มีข้อความ "การหมดเวลาของการดําเนินการหมดอายุแล้ว ช่วงเวลาการหมดเวลาผ่านไปก่อนการดําเนินการให้เสร็จสมบูรณ์หรือเซิร์ฟเวอร์ไม่ตอบสนอง" SqlBulkCopy.WriteToServer กําลังส่งโทเค็น Attention (ข้อความการยกเลิก) หลังจากส่งข้อมูลไปยัง Sql Server ทําให้เซิร์ฟเวอร์ยกเลิกทรานแซคชันสําหรับตารางในหน่วยความจํา |
| ASP.NET | - ใช้แฮชที่เข้ากันได้กับ FIPS ในข้อมูลการวัดและส่งข้อมูลทางไกล ASP.Net - แก้ไขปัญหาที่ "ไม่ระบุ" ไม่ใช่ค่าที่อนุญาตในการกําหนดค่าสําหรับแอตทริบิวต์ 'cookieSameSite' ของส่วนการรับรองความถูกต้องของฟอร์มและการกําหนดค่าสถานะเซสชัน |
| WPF2 | - แก้ไขปัญหาเมื่อเปิดใช้งานการตรวจสอบการสะกดใน WPF TextBox หรือ RichTextBox คําต่างๆ เช่น "etc.", "เช่น" ถูกระบุว่าเป็นข้อผิดพลาดในการสะกดไม่ถูกต้อง - แก้ไขปัญหาเมื่อแอปพลิเคชัน WPF Per-Monitor Aware ที่ทํางานบน .NET 4.8 บางครั้งอาจพบการหยุดทํางานโดยมีข้อยกเว้น System.ComponentModel.Win32Exception - แก้ไขปัญหาที่การเรียงตัวของ TextBlock ใหม่ (ทําการตัดสินใจแบ่งบรรทัดที่แตกต่างกัน) ระหว่างการแสดงผลและ Hit-test และระหว่างการวัด อาการรวมถึงข้อความที่หายไป และ FailFast หยุดทํางานระหว่างการประมวลผลข้อความทางโปรแกรม - แก้ไขปัญหาความล้มเหลวของเธรดการแสดงผลที่เกิดจาก HostVisual ยกเลิกการเชื่อมต่อเป้าหมายบนเธรดที่ไม่ถูกต้อง - แก้ไขปัญหาเกี่ยวกับการค้างขณะเลื่อน TreeView ซึ่งมีต้นไม้ที่ไม่เหมือนกัน ในแง่ที่ว่า เด็กโหนดที่กําหนดให้จะควบคุมทรีย่อยที่มีขนาดแตกต่างกันมาก - แก้ไขปัญหาเกี่ยวกับการหยุดทํางานที่อาจเกิดขึ้นเมื่อปิดคําแนะนําเครื่องมือที่ปิดอีกครั้งโดยรหัสผู้ใช้ - เมื่อ HwndHost ออกจากทรีภาพ การติดตามสแตกจะถูกสร้างขึ้น นี่เป็นราคาแพงและไม่จําเป็น ตรรกะจะถูกเปลี่ยนเพื่อสร้างการติดตามสแตกเฉพาะเมื่อเงื่อนไขผิดปกติเกิดขึ้นเท่านั้น - แก้ไขปัญหาหน่วยความจําพร่องไปใน System.Speech.SpeechSynthesizer - คําสั่งคัดลอกของ DataGrid แสดงข้อยกเว้นหากคลิปบอร์ดระบบถูกล็อกโดยกระบวนการอื่น ปัญหานี้หยุดทํางาน เนื่องจากมักไม่มีรหัสแอปบนสแตกเพื่อตรวจพบข้อยกเว้น ลักษณะการทํางานของ TextBox (และแอปอื่นๆ เช่น Notepad, Word, เบราว์เซอร์) ในสถานการณ์นี้คือล้มเหลวโดยไม่แจ้งให้ทราบ - ไม่มีอะไรถูกคัดลอกไปยังคลิปบอร์ด แต่ไม่มีข้อยกเว้น ขณะนี้แอป WPF สามารถเลือกรับลักษณะการทํางานนี้ได้โดยการตั้งค่า <appSettings><add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings>ในไฟล์ app.config - แก้ไขปัญหาในการสร้างโมเดลภายในสําหรับเอกสาร FixedPage ข้อความบางข้อความปรากฏในลําดับที่ไม่ถูกต้องสําหรับการแก้ไขการดําเนินการ เช่น ส่วนที่เลือกและคัดลอก/วาง |
| WCF3 | - เมื่อใช้ชื่อผู้ใช้ WINDOWS UPN กับรูปแบบที่คล้ายกับ username@dns.domain ในคุณสมบัติชื่อผู้ใช้ของ NetworkCredential เมื่อใช้ NetTcpBinding หรือ NetNamedPipeBinding WCF จะแยกชื่อผู้ใช้และ dns.domain ที่วางไว้ในคุณสมบัติ UserName และ Domain อย่างไม่ถูกต้อง การดําเนินการนี้ไม่ถูกต้องในบางสถานการณ์ และอาจส่งผลให้ไม่สามารถรับรองความถูกต้องได้ การแก้ไขนี้จะนําการปรับเปลี่ยนข้อมูลประจําตัวออกเมื่อใช้ชื่อผู้ใช้ UPN การปรับเปลี่ยนสามารถเปิดใช้งานใหม่ได้โดยการตั้งค่า AppSetting "wcf:enableLegacyUpnUsernameFix" เป็น true |
| Net Libraries | - แก้ไขปัญหาหน่วยความจําพร่องไปใน HttpListener |
| Winforms | - แก้ไขปัญหาเกี่ยวกับสถานะ DataGridView IsReadOnlyaccessibility: โปรแกรมผู้บรรยายและเครื่องมือที่สามารถเข้าถึงได้อื่นๆ จะประกาศสถานะเซลล์แบบอ่านอย่างเดียวตามนั้น - แก้ไขปัญหาการถดถอยใน .NET Framework 4.8 เมื่อแอปพลิเคชันที่ใช้ชนิดเซลล์ DataGridView ComboBox และเลือกเข้าร่วมการช่วยสําหรับการเข้าถึงระดับ 3 อาจประสบกับการหยุดทํางานเป็นระยะขณะแก้ไขเซลล์ - แก้ไขปัญหาใน ClickOnce RFC3161 รหัสการตรวจสอบการประทับเวลา |
| การปรับปรุงการช่วยสําหรับการเข้าถึงของ Winforms | ในรุ่นนี้ เรากําลังเพิ่มการปรับปรุงการช่วยสําหรับการเข้าถึงใหม่ที่แอปพลิเคชันของคุณสามารถเลือกรับได้ ตามค่าเริ่มต้น การเปลี่ยนแปลงเหล่านี้จะถูกปิดใช้งาน แอปพลิเคชันที่เลือก ใช้คุณลักษณะการช่วยสําหรับการเข้าถึง ที่เริ่มนํามาใช้ใน .NET 4.8 และเวอร์ชันก่อนหน้า สามารถเพิ่มสวิตช์ความเข้ากันได้ต่อไปนี้ลงในไฟล์การกําหนดค่าของแอปพลิเคชัน:"Switch.UseLegacyAccessibilityFeatures.4=false"โดยเฉพาะอย่างยิ่ง ถ้าแอปพลิเคชันกําหนดเป้าหมายเป็น .NET 4.8 ให้เพิ่มส่วน AppContextSwitchOverrides ต่อไปนี้: <?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.8"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.4=false" /> </runtime> </configuration>หากแอปพลิเคชันกําหนดเป้าหมายเวอร์ชันก่อนหน้าของเฟรมเวิร์กและเข้าร่วมในชุดฟีเจอร์การช่วยสําหรับการเข้าถึงก่อนหน้านี้ ให้เพิ่มสวิตช์เดียว "Switch.UseLegacyAccessibilityFeatures.4=false" ไปยังส่วนที่มีอยู่ AppContextSwitchOverrides :<?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.7"/> </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false\|Switch.UseLegacyAccessibilityFeatures.2=false\|Switch.UseLegacyAccessibilityFeatures.3=false\|Switch.UseLegacyAccessibilityFeatures.4=false"/> </runtime> </configuration>การปรับปรุงการช่วยสําหรับการเข้าถึงของ Winforms ที่รวมอยู่ในรุ่นนี้คือ:- แก้ไขปัญหาเกี่ยวกับการประกาศรายการตัวควบคุม PropertyGrid และประเภทที่ขยาย/ยุบตามโปรแกรมอ่านหน้าจอ - อัปเดตรูปแบบที่สามารถเข้าถึงได้ของตัวควบคุมตารางคุณสมบัติและองค์ประกอบภายใน - อัปเดตชื่อที่สามารถเข้าถึงได้ขององค์ประกอบภายในของตัวควบคุมตารางคุณสมบัติเพื่อประกาศโดยโปรแกรมอ่านหน้าจอเหล่านี้อย่างถูกต้อง - ที่อยู่ที่ผูกมัดคุณสมบัติที่สามารถเข้าถึงได้ของสี่เหลี่ยมผืนผ้าสําหรับตัวควบคุม PropertyGridView - เปิดใช้งานโปรแกรมอ่านหน้าจอเพื่อประกาศเซลล์กล่องคําสั่งผสม DataGridView ที่ขยาย/ยุบสถานะอย่างถูกต้อง |
1 รันไทม์ภาษาทั่วไป (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation
ปัญหาที่ทราบแล้วในการอัปเดตนี้
แอปพลิเคชัน Windows Presentation Framework (WPF) ที่ใช้องค์ประกอบ HostVisual สององค์ประกอบขึ้นไปที่เป็นของเธรดทั่วไป โดยที่องค์ประกอบ HostVisual ทั้งสองรายการจะถูกขอให้ตัดการเชื่อมต่อจากเป้าหมายแบบเป็นภาพของพวกเขาในเวลาเดียวกันจดหมายล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้:
ชนิดข้อยกเว้น: System.COMException
ข้อความ: UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Callstack: ท็อปเฟรมคือ System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
แก้ไข ปัญหา
คุณสามารถปิดใช้งานการแก้ไขปัญหาได้โดยการตั้งค่าสวิตช์ AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" เป็นจริง โดยใช้วิธีใดวิธีหนึ่งที่อธิบายไว้ที่นี่ ซึ่งจะทําให้แอปของคุณพบบักเดิม ดังนั้นคุณควรลบสวิตช์ออกเมื่อเผยแพร่การแก้ไขผ่านการอัปเดตที่กําลังจะมาถึง
วิธีแก้ไขปัญหาชั่วคราว 1
• เพิ่มรายการต่อไปนี้ลงในไฟล์ app.config เพื่อปิดใช้งานการแก้ไขปัญหาในแอปพลิเคชันเดียว
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</รัน ไทม์>
โปรดทราบว่าถ้าการกําหนดค่าแอปพลิเคชันของคุณมีรายการสําหรับ <AppContextSwitchOverrides> อยู่แล้ว คุณจําเป็นต้องเพิ่มการตั้งค่าใหม่ภายในรายการนั้น โดยคั่นจากสวิตช์อื่นด้วยเครื่องหมายอัฒภาค:
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
วิธีแก้ไขปัญหาชั่วคราว 2
• ใช้ซับคีย์รีจิสทรีต่อไปนี้เพื่อปิดใช้งานการแก้ไขที่มีปัญหาสําหรับแอปพลิเคชัน WPF ทั้งหมดในเครื่อง
คำเตือน
ปัญหาร้ายแรงอาจเกิดขึ้นถ้าคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้องโดยใช้ Registry Editor หรือใช้วิธีอื่น ปัญหาเหล่านี้อาจทำให้คุณต้องติดตั้งระบบปฏิบัติการใหม่ Microsoft ไม่สามารถรับประกันได้ว่าปัญหาเหล่านี้จะสามารถแก้ไขได้ คุณต้องยอมรับความเสี่ยงในการปรับเปลี่ยนรีจิสทรีด้วยตนเอง
ตําแหน่ง: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
ชื่อ: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
ชนิด: สตริง
ค่า: จริง
โปรดทราบว่าบนระบบปฏิบัติการ 64 บิต คุณยังต้องใช้ซับคีย์รีจิสทรีที่มีชื่อ ชนิด และค่าที่ตําแหน่งเดียวกัน: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
การแก้ปัญหา
เรากําลังดําเนินการแก้ไขปัญหาและจะนําเสนอการอัปเดตในรุ่นถัดไป
วิธีการรับและติดตั้งการอัปเดต
ติดตั้งการอัปเดตนี้
| ช่องทางการเผยแพร่ | พร้อมใช้งาน | ขั้นตอนถัดไป |
|---|---|---|
| Windows Update และ Microsoft Update | ใช่ | เมื่อต้องการดาวน์โหลดและติดตั้งการอัปเดตนี้ ให้ไปที่ การอัปเดตการตั้งค่า>& ความปลอดภัย>Windows Update แล้วเลือก ตรวจหาการอัปเดต |
| Microsoft Update Catalog | ใช่ | เมื่อต้องการขอรับแพคเกจสแตนด์อโลนสำหรับการอัปเดตนี้ ให้ไปที่เว็บไซต์ Microsoft Update Catalog |
| Windows Server Update Services (WSUS) | ไม่ | คุณสามารถนำเข้าการอัปเดตนี้ไปยัง WSUS ด้วยตนเองได้ ดูที่ Microsoft Update Catalog สำหรับคำแนะนำ |
ข้อมูลไฟล์
สําหรับลิสต์ของไฟล์ที่ระบุในการอัปเดตนี้ ให้ดาวน์โหลด ข้อมูลไฟล์สําหรับการอัปเดตแบบสะสม
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้การอัปเดตนี้ คุณต้องติดตั้ง .NET Framework 3.5 หรือ 4.8
ข้อกำหนดในการรีสตาร์ต
คุณต้องเริ่มระบบของคอมพิวเตอร์ใหม่หลังจากที่คุณใช้การอัปเดตนี้หากมีการใช้ไฟล์ที่ได้รับผลกระทบ เราขอแนะนําให้คุณออกจากแอปพลิเคชัน.NET Framework ทั้งหมดก่อนที่คุณจะใช้การอัปเดตนี้
วิธีการขอรับความช่วยเหลือและการสนับสนุนสําหรับการอัปเดตนี้
- วิธีใช้สําหรับการติดตั้งการอัปเดต: Windows Update คําถามที่ถามบ่อย
- ปกป้องตัวคุณเองทั้งแบบออนไลน์และที่บ้าน: การสนับสนุนความปลอดภัยของ Windows
- การสนับสนุนในท้องถิ่นตามประเทศของคุณ: การสนับสนุนระหว่างประเทศ