Remarque
- Date de publication :
31 juillet 2020 - Version:
.NET Framework 3.5 et 4.8
La mise à jour du 31 juillet 2020 pour Windows 10 version 2004 contient des améliorations cumulatives de la fiabilité pour .NET 3.5 et 4.8. Il est recommandé d’appliquer cette mise à jour dans le cadre de vos tâches de maintenance régulière. Avant d'installer cette mise à jour, consultez les sections Conditions préalables et Nécessité de redémarrer.
Améliorations de la qualité et de la fiabilité
| CLR1 | - Une modification dans .NET Framework 4.8 a régressé certains scénarios EnterpriseServices où un objet d’appartement à thread unique peut être traité comme un objet à plusieurs threads et entraîner une défaillance de blocage. Cette modification identifie désormais correctement les objets cloisonnés à thread unique en tant que tels et évite cet échec. - Résout un problème dans les assemblys avec les données de profil IBC provoquant le blocage des processus de travail Ngen et le retour à des images natives complètes. - Résolution de rares incidents pouvant survenir lors de la remise d’abandon de thread. |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer peut entraîner l’échec des transactions vers des tables SQL en mémoire. Le client peut voir une exception avec le message « Le délai d’exécution a expiré. Le délai d’expiration s’est produit avant la fin de l’opération ou le serveur ne répond pas. » SqlBulkCopy.WriteToServer envoyait un jeton d’attention (message d’annulation) après avoir envoyé des données à Sql Server, ce qui entraînait l’abandon de la transaction par le serveur pour les tables en mémoire. |
| ASP.NET | - Utilisez des hachages conformes aux normes FIPS dans ASP.Net données de télémétrie. - Résout un problème où « Non spécifié » n’était pas une valeur autorisée dans la configuration pour l’attribut « cookieSameSite » des sections d’authentification des formulaires et de configuration de l’état de la session. |
| WPF2 | - Résout un problème lorsque la vérification orthographique est activée dans WPF TextBox ou RichTextBox, des mots comme « etc. », « par exemple ». sont identifiés comme des fautes d’orthographe incorrectes. - Résolution d’un problème lorsque certaines applications WPF Per-Monitor qui s’exécutent sur .NET 4.8 peuvent parfois rencontrer un blocage avec exceptionSystem.ComponentModel.Win32Exception. - Résout un problème où TextBlock redistribue (prend différentes décisions de rupture de ligne) pendant le rendu et le test de frappe, par rapport à pendant la mesure. Les symptômes comprennent du texte manquant et des blocages de FailFast pendant le traitement de texte par programmation. - Résolution d’un problème lié à un échec de thread de rendu provoqué par la déconnexion par HostVisual de sa cible sur le mauvais thread. - Résolution d’un problème lié à un blocage lors du défilement d’un TreeView dont l’arborescence n’est pas uniforme, dans le sens où les enfants d’un nœud donné gouvernent des sous-arbres dont la taille est très différente. - Résolution d’un problème lié à un incident qui peut se produire lors de la fermeture d’une info-bulle fermée de manière réentrante par le code utilisateur. - Lorsqu’un HwndHost quitte l’arborescence visuelle, une trace de pile est créée. C’est coûteux et généralement inutile. La logique est à présent modifiée pour créer le suivi de la pile uniquement lorsque la condition anormale se produit. - Résolution d’une fuite de mémoire dans System.Speech.SpeechSynthesizer. - La commande Copier de DataGrid lève une exception si le presse-papiers système est verrouillé par un autre processus. Cela se bloque, car il n’y a généralement aucun code d’application sur la pile pour intercepter l’exception. Le comportement de TextBox (et d’autres applications telles que le Bloc-notes, Word, les navigateurs) dans cette situation est d’échouer silencieusement - rien n’est copié dans le presse-papiers, mais aucune exception. Une application WPF peut désormais opter pour ce comportement en définissant <appSettings><add key="ShouldThrowOnDataGridCopyOrCutFailure » value="false"/></appSettings>dans son fichier app.config. - Résolution d’un problème lié à la construction du modèle interne pour un document FixedPage. Du texte s’affichait dans le mauvais ordre pour des raisons d’édition, comme la sélection et le copier/coller. |
| WCF3 | - Lors de l’utilisation d’un nom d’utilisateur Windows UPN avec un format similaire à celui de username@dns.domain la propriété username d’un NetworkCredential lors de l’utilisation de NetTcpBinding ou NetNamedPipeBinding, WCF divisait de manière incorrecte le nom d’utilisateur et dns.domain en les plaçant dans les propriétés UserName et Domain. Ceci n’est pas valide dans certains scénarios et entraînerait l’échec de l’authentification. Ce correctif supprime la modification des informations d’identification lors de l’utilisation d’un nom d’utilisateur UPN. La modification peut être réactivée en définissant le paramètre AppSetting « wcf :enableLegacyUpnUsernameFix » sur true. |
| Bibliothèques réseau | - Résolution d’une fuite de mémoire dans HttpListener. |
| WinForms | - Résout un problème lié à l’état DataGridView IsReadOnlyaccessibility : le Narrateur et d’autres outils accessibles annoncent la status de cellule en lecture seule en conséquence. - Résolution d’une régression dans .NET Framework 4.8 lorsque les applications utilisant le type de cellule DataGridView ComboBox et ayant opté pour l’accessibilité de niveau 3 peuvent rencontrer des blocages intermittents lors de la modification de la cellule. - Résolution d’un problème dans ClickOnce RFC3161 code de vérification de l’horodatage. |
| Améliorations de l’accessibilité de Winforms | Dans cette version, nous ajoutons de nouvelles améliorations d’accessibilité que votre application peut accepter. Ces modifications sont désactivées par défaut. Les applications qui acceptent les fonctionnalités d’accessibilité introduites dans .NET 4.8 et les versions antérieures peuvent ajouter le commutateur de compatibilité suivant au fichier de configuration de l’application :"Switch.UseLegacyAccessibilityFeatures.4=false"Plus précisément, si une application cible .NET 4.8, ajoutez la section AppContextSwitchOverrides suivante : <?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>Si une application cible une version antérieure de l’infrastructure et accepte les ensembles de fonctionnalités d’accessibilité publiés précédemment, ajoutez un seul "Switch.UseLegacyAccessibilityFeatures.4=false" commutateur à la section existante 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>Les améliorations apportées à l’accessibilité par Winforms sont les suivantes :- Résolution d’un problème lié à l’annonce de l’état développé/réduit des éléments et des catégories de contrôle PropertyGrid par les lecteurs d’écran. - Mise à jour des modèles d’accessibilité du contrôle Grille des propriétés et de ses éléments internes. - Mise à jour des noms accessibles des éléments internes du contrôle Property Grid pour les annoncer correctement par le lecteur d’écran. - Résolution des propriétés accessibles du rectangle englobant pour les contrôles PropertyGridView - Permet aux lecteurs d’écran d’annoncer correctement l’état développé/réduit de la cellule ComboBox DataGridView. |
1 Common Language Runtime (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation
Problèmes connus dans cette mise à jour
Les applications Windows Presentation Framework (WPF) qui utilisent au moins deux éléments HostVisual appartenant à un thread commun, où les deux éléments HostVisual sont invités à se déconnecter de leur cible visuelle à peu près au même moment, les messages échouent avec l’erreur suivante :
Type d’exception : System.COMException
Message : UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Callstack : le cadre supérieur est System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
Solutions de contournement
Vous pouvez désactiver le correctif problématique en définissant le commutateur AppContext « Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread » sur true, à l’aide de l’une des méthodes décrites ici. Cela expose votre application au bogue d’origine. Vous devez donc supprimer le commutateur une fois qu’un correctif est publié via une prochaine mise à jour.
Solution de contournement 1
• Ajoutez l’entrée suivante au fichier app.config pour désactiver le correctif problématique dans une seule application.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</runtime>
Notez que si votre configuration d’application comporte déjà une entrée pour <AppContextSwitchOverrides>, vous devez ajouter le nouveau paramètre dans cette entrée, séparé des autres commutateurs par un point-virgule :
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
Solution de contournement 2
• Appliquez la sous-clé de registre suivante pour désactiver le correctif problématique pour toutes les applications WPF sur la machine.
Avertissement
Toute modification incorrecte du Registre à l’aide de l’Éditeur du Registre ou d’une autre méthode peut entraîner des problèmes sérieux. Ces problèmes peuvent nécessiter la réinstallation du système d’exploitation. Microsoft ne peut pas garantir que ces problèmes peuvent être résolus. Vous assumez l’ensemble des risques liés à la modification du Registre.
Lieu : HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Nom : Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Type : chaîne
Valeur : true
Notez que sur les systèmes d’exploitation 64 bits, vous devez également appliquer une sous-clé de Registre portant le même nom, le même type et la même valeur à l’emplacement : HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
Solution
Nous travaillons sur une résolution et fournirons une mise à jour dans une prochaine version.
Procédure d'obtention et d'installation de la mise à jour
Installer cette mise à jour
| Canal de publication | Disponible | Étape suivante |
|---|---|---|
| Windows Update et Microsoft Update | Oui | Pour télécharger et installer cette mise à jour, accédez à Settings>Update & Security>Windows Update puis sélectionnez Rechercher les mises à jour. |
| Microsoft Update Catalog | Oui | Pour obtenir le package autonome pour cette mise à jour, accédez au site web Catalogue Microsoft Update. |
| Windows Server Update Services (WSUS) | Non | Vous pouvez importer cette mise à jour manuellement dans WSUS. Pour obtenir des instructions, consultez le Catalogue Microsoft Update . |
Informations de fichier
Pour obtenir une liste des fichiers fournis dans cette mise à jour, téléchargez les informations de fichier relatives à la mise à jour cumulative.
Configuration requise
Pour appliquer cette mise à jour, vous devez avoir installé .NET Framework 3.5 ou 4.8.
Nécessité de redémarrer
Vous devez redémarrer l’ordinateur après avoir appliqué cette mise à jour si des fichiers concernés sont en cours d’utilisation. Il est recommandé de quitter toutes les applications .NET Framework avant d’appliquer cette mise à jour.
Procédure pour obtenir de l'aide et un support pour cette mise à jour
- Aide pour l’installation des mises à jour : FAQ Windows Update
- Protégez-vous en ligne et à la maison : Support de Sécurité Windows
- Support local selon votre pays/région/région : Support international