31 iulie 2020 - KB4562899 Actualizare cumulativă pentru .NET Framework 3.5 și 4.8 pentru Windows 10, versiunea 2004

Se aplică la
.NET

Notă

  • Data lansării:
    31 iulie 2020
  • Versiune:
    .NET Framework 3.5 și 4.8

Actualizarea din 31 iulie 2020 pentru Windows 10, versiunea 2004, include îmbunătățiri de fiabilitate cumulative în .NET 3.5 și 4.8. Vă recomandăm să aplicați această actualizare ca parte din rutina de întreținere obișnuită. Înainte de a instala această actualizare, consultați secțiunile Cerințe preliminare și Cerințe de repornire .

Îmbunătățiri de calitate și fiabilitate

CLR1 - O modificare în .NET Framework 4.8 a regresat anumite scenarii EnterpriseServices în care un obiect apartment cu un singur fir poate fi tratat ca un apartament cu mai multe fire și poate duce la o eroare de blocare. Această modificare identifică acum corect obiectele apartment cu un singur fir ca atare și evită această eroare.
- Tratează o problemă din ansamblurile cu date de profil IBC care provoacă blocarea proceselor de lucru Ngen și revenirea la imagini native complete.
- Tratează blocările rare care pot apărea în timpul livrării abandonului de conversație.
SQL - SqlBulkCopy.WriteToServer poate cauza nereușita tranzacțiilor către tabelele SQL în memorie. Clientul poate vedea o excepție cu mesajul "Expirarea expirării execuției. Perioada de expirare a trecut înainte de terminarea operațiunii sau serverul nu răspunde." SqlBulkCopy.WriteToServer trimitea un simbol de atenție (mesaj de anulare) după trimiterea datelor la SQL Server, determinând ca serverul să abandoneze tranzacția pentru tabelele în memorie.
ASP.NET - Utilizați hashuri conforme cu FIPS în datele de telemetrie ASP.Net.
- Tratează o problemă în care "Nespecificat" nu era o valoare permisă în configurare pentru atributul "cookieSameSite" al secțiunilor de autentificare a formularelor și de configurare a stării sesiunii.
WPF2 - Tratează o problemă atunci când verificarea ortografiei este activată în WPF TextBox sau RichTextBox, cuvinte cum ar fi "etc.", "de exemplu." sunt identificate ca erori de ortografie incorect.
- Tratează o problemă ce apare atunci când unele aplicații WPF receptive la Per-Monitor care rulează pe .NET 4.8 pot întâmpina ocazional o cădere cu exceptionSystem.ComponentModel.Win32Exception.
- Tratează o problemă în care TextBlock reîncadrează (ia decizii diferite de sfârșit de linie) în timpul redării și testului de accesare, față de în timpul măsurării. Printre simptome se numără lipsa textului și căderi FailFast în timpul procesării programatice a textului.
- Tratează o problemă cu o eroare a firului de redare cauzată de deconectarea HostVisual a țintei pe firul greșit.
- Abordează o problemă cu o blocare în timp ce derulați un TreeView al cărui arbore nu este uniform, în sensul că copiii unui anumit nod guvernează subarbori ale căror dimensiuni sunt destul de diferite.
- Tratează o problemă cu o cădere care poate apărea la închiderea unui sfat ecran care este închis din nou de codul de utilizator.
- Când un HwndHost părăsește arborele vizual, se creează o urmărire a stivei. Acest lucru este costisitor și, de obicei, inutil. Logica este acum modificată pentru a crea trasarea stivei doar atunci când apare starea anormală.
- Tratează o irosire de memorie în System.Speech.SpeechSynthesizer.
- Comanda Copiere a DataGrid generează o excepție dacă clipboardul de sistem este blocat de un alt proces. Aceasta se defectează, deoarece nu există de obicei niciun cod de aplicație în stivă pentru a captura excepția. Comportamentul TextBox (și al altor aplicații, cum ar fi Notepad, Word, browsere) în această situație este de a eșua silențios - nimic nu este copiat în clipboard, dar nicio excepție. O aplicație WPF poate opta acum pentru acest comportament setând appSettings<>add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings>în fișierul <său app.config.
- Tratează o problemă în construirea modelului intern pentru un document FixedPage. O parte din text se afișa în ordine incorectă pentru operațiuni de editare, cum ar fi selectarea și copierea/lipirea.
WCF3 - Atunci când utilizați un nume de utilizator Windows UPN cu un format similar cu username@dns.domain în proprietatea username a unei NetworkCredential atunci când utilizați NetTcpBinding sau NetNamedPipeBinding, WCF ar scinda incorect numele de utilizator și dns.domain, plasându-le în proprietățile UserName și Domain. Acest lucru nu este valid în anumite scenarii și ar avea drept consecință neautentificarea. Această remediere elimină modificarea acreditărilor atunci când utilizați un nume de utilizator UPN. Modificarea poate fi reactivată setând AppSetting "wcf:enableLegacyUpnUsernameFix" la true.
Bibliotecile de rețea - Tratează o pierdere de memorie în HttpListener.
Forme de vinci - Tratează o problemă cu starea de accesibilitate DataGridView IsReadOnly: Naratorul și alte instrumente accesibile anunță starea celulelor doar în citire în consecință.
- Tratează o regresie din .NET Framework 4.8 atunci când aplicațiile care utilizează tipul de celulă DataGridView ComboBox și au optat pentru nivelul 3 de accesibilitate pot întâmpina căderi intermitente în timpul editării celulei.
- Tratează o problemă din codul de verificare a mărcii de timp ClickOnce RFC3161.
Îmbunătățiri ale accesibilității Winforms În această versiune, adăugăm noi îmbunătățiri de accesibilitate la care aplicația dvs. se poate înscrie. În mod implicit, aceste modificări sunt dezactivate. Aplicațiile care optează pentru caracteristicile de accesibilitate introduse în .NET 4.8 și în versiunile anterioare pot adăuga următorul comutator de compatibilitate la fișierul de configurare al aplicației:
"Switch.UseLegacyAccessibilityFeatures.4=false"
Mai exact, dacă o aplicație vizează .NET 4.8, adăugați următoarea secțiune 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>
Dacă o aplicație vizează o versiune anterioară a cadrului și optează pentru seturile de caracteristici de accesibilitate lansate anterior, adăugați un singur "Switch.UseLegacyAccessibilityFeatures.4=false" argument la secțiunea existentă 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>
Îmbunătățirile de accesibilitate Winforms incluse în această versiune sunt:- Tratează o problemă cu anunțarea stării extinse/restrânse pentru elementele de control PropertyGrid și categoriile de către cititoarele de ecran.
- Au fost actualizate modelele accesibile ale controlului Grilei de proprietăți și elementele sale interne.
- S-au actualizat numele accesibile ale elementelor interioare ale controlului grilei de proprietăți pentru a le anunța corect de cititorul de ecran.
- Tratează proprietățile accesibile dreptunghiului de limitare pentru controalele PropertyGridView
- Permite cititoarelor de ecran să anunțe corect starea de extindere/restrângere a celulei DataGridView ComboBox.

         1 CLR (Common Language Runtime)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation

Probleme cunoscute din această actualizare

Aplicațiile Windows Presentation Framework (WPF) care utilizează două sau mai multe elemente HostVisual aparținând unui fir comun, în care ambele elemente HostVisual sunt rugate să se deconecteze de la ținta lor vizuală aproximativ în același timp, eșuează eșuarea mesajului, cu următoarea eroare:

Tip de excepție: System.COMException
Mesaj: UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Callstack: cadrul de sus este System.Windows.Media.Composition.DUCE+Channel.SyncFlush()

Soluții de evitare

Puteți dezactiva remedierea problematică setând comutatorul AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" la true, utilizând una dintre metodele descrise aici.  Acest lucru vă expune aplicația la eroarea inițială, deci ar trebui să eliminați comutatorul după ce se publică o remediere printr-o actualizare viitoare.

Soluția 1

• Adăugați următoarea intrare la fișierul app.config pentru a dezactiva remedierea problemelor într-o singură aplicație.

        <runtime>
     <AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</runtime>

Rețineți că, dacă configurația aplicației are deja o intrare pentru <AppContextSwitchOverrides>, trebuie să adăugați noua setare în acea intrare, separată de alte argumente prin punct și virgulă:

   <AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>

Soluția 2

• Aplicați următoarea subcheie de registry pentru a dezactiva remedierea problematică pentru toate aplicațiile WPF de pe computer.
 Avertisment
Pot apărea probleme grave dacă faceți modificări incorecte în registry utilizând Registry Editor sau altă metodă. Aceste probleme pot necesita reinstalarea sistemului de operare. Microsoft nu poate garanta că aceste probleme pot fi rezolvate. Modificați registry pe propriul risc.

Locație: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Nume: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Tip: Șir
Valoare: true

Rețineți că pe sistemele de operare pe 64 de biți trebuie, de asemenea, să aplicați o subcheie de registry cu același nume, tip și valoare în locație: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\

Rezolvarea

Lucrăm la o soluție și vom oferi o actualizare în acest sens într-o versiune viitoare.
 

Cum se obține și se instalează actualizarea

Instalați această actualizare

Canal de lansare Disponibil Următorul pas
Windows Update și Microsoft Update Da Pentru a descărca și a instala această actualizare, accesați Setări>Actualizare & Securitate>Windows Update apoi selectați Căutați actualizări.
Catalog Microsoft Update Da Pentru a obține pachetul independent pentru această actualizare, accesați site-ul web Catalog Microsoft Update.
Serviciile de actualizare Windows Server (WSUS) Nu Puteți importa manual această actualizare în WSUS. Consultați Catalogul Microsoft Update pentru instrucțiuni.

Informații despre fișiere

Pentru o listă a fișierelor furnizate în această actualizare, descărcați informațiile de fișier pentru actualizarea cumulativă.

Cerințe preliminare

Pentru a aplica această actualizare, trebuie să aveți .NET Framework 3.5 sau 4.8 instalat.

Cerința de repornire

Trebuie să reporniți computerul după ce aplicați această actualizare dacă se utilizează fișiere afectate. Vă recomandăm să ieșiți din toate aplicațiile bazate pe .NET Framework înainte de a aplica această actualizare.

Cum se obține ajutor și asistență pentru această actualizare