31 กรกฎาคม 2020-แสดงตัวอย่างการอัปเดตสะสม KB4562899 สำหรับ .NET Framework 3.5 และ 4.8 สำหรับ Windows 10 เวอร์ชัน 2004

นำไปใช้กับ
.NET

หมายเหตุ

  • วันที่เผยแพร่:
    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 ทั้งหมดก่อนที่คุณจะใช้การอัปเดตนี้

วิธีการขอรับความช่วยเหลือและการสนับสนุนสําหรับการอัปเดตนี้