Примечание
- Дата выхода:
21 июля 2020 г. - Версия:
платформа .NET Framework 3.5 и 4.8
Обновление от 21 июля 2020 г. для Windows 10 версии 1903, Windows Server 1903 RTM, Windows 10 версии 1909 и Windows Server версии 1909 включает накопительные улучшения надежности в .NET 3.5 и 4.8. Рекомендуется применять это обновление в рамках регулярных процедур обслуживания. Перед установкой этого обновления см. разделы " Необходимые условия " и "Требования к перезапуску ".
Улучшения качества и надежности
| CLR1 | - Изменение в платформе .NET Framework 4.8 регрессировало некоторые сценарии EnterpriseServices, в которых однопоточный объект квартиры мог рассматриваться как многопоточный объект квартиры и приводить к сбою блокировки. Это изменение теперь правильно определяет однопоточные объекты apartment как таковые и позволяет избежать этого сбоя. - Устранена проблема в сборках с данными профиля IBC, приводившая к сбою рабочих процессов Ngen и возврату к полным образам в машинном коде. — Устранены редкие сбои, которые могли возникать во время доставки прерывания потока. |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer может привести к сбою транзакций к SQL-таблицам в памяти. Клиент может увидеть исключение с сообщением "Время ожидания выполнения истекло. Период ожидания истек до завершения операции, или сервер не отвечает". SqlBulkCopy.WriteToServer отправлял маркер внимания (сообщение об отмене) после отправки данных в SQL Server, в результате чего сервер прерывал транзакцию для таблиц в памяти. |
| ASP.NET | - Использование FIPS-совместимых хэшей в ASP.Net данных телеметрии. - Устранена проблема, из-за которой «Unspecified» не было допустимым значением в конфигурации для атрибута «cookieSameSite» разделов проверки подлинности форм и настройки состояния сеанса. |
| WPF2 | — Устранена проблема, из-за которой проверка орфографии включена в текстовом поле WPF или RichTextBox, такие слова, как «и т. д.», «например» неправильно определяются как орфографические ошибки; - Устранена проблема, из-за которой некоторые приложения WPF с поддержкой Per-Monitor, выполняемые в .NET 4.8, могут иногда сталкиваться с аварийным завершением работы с exceptionSystem.ComponentModel.Win32Exception. - Устранена проблема, из-за которой TextBlock переосмысливает (принимает разные решения о разрыве строк) во время рендеринга и хит-теста, а не во время измерения. К таким симптомам относятся пропуск текста и сбои FailFast во время программной обработки текста. - Устранена проблема со сбоем потока отрисовки, вызванным тем, что HostVisual отключает свою цель в неправильном потоке. - Устранена проблема с зависанием при прокрутке TreeView, дерево которого неоднородно, в том смысле, что потомки данного узла управляют поддеревьями с совершенно разными размерами. — Устранена проблема с аварийным завершением, который мог произойти при закрытии подсказки, повторно закрытой пользовательским кодом. - Когда HwndHost покидает визуальное дерево, создается трассировка стека. Это дорого и, как правило, не нужно. Теперь логика изменена так, чтобы трассировка стека создавалась только при возникновении аномального состояния. - Устранена утечка памяти в System.Speech.SpeechSynthesizer. - Команда Copy DataGrid выбрасывает исключение, если системный буфер обмена заблокирован другим процессом. Это приводит к сбою, так как в стеке обычно нет кода приложения для перехвата исключения. Поведение TextBox (и других приложений, таких как Блокнот, Word и браузеры) в этой ситуации происходит без сбоев - в буфер обмена ничего не копируется, но нет исключений. Теперь приложение WPF может выбрать такое поведение, настроив <appSettings><добавление key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/<>/appSettings в свой app.config файл.> - Устранена проблема при создании внутренней модели для документа FixedPage. Некоторый текст появлялся в неправильном порядке для выполнения операций редактирования, таких как выделение и копирование и вставка. |
| WCF3 | - При использовании имени пользователя Windows UPN в формате, аналогичном username@dns.domain свойству username 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, могут сталкиваться с периодическими сбоями при редактировании ячейки. - Устранена проблема с кодом проверки метки времени RFC3161 ClickOnce. |
| Улучшения специальных возможностей 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 ComboBox. |
1 среда CLR
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation
Известные проблемы, связанные с этим обновлением
Приложения Windows Presentation Framework (WPF), использующие два или более элементов HostVisual, принадлежащих к общему потоку, если оба элемента HostVisual просят отключиться от визуальной цели примерно в одно и то же время, почта завершается сбоем со следующей ошибкой:
Тип исключения: System.COMException
Сообщение: UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Стек вызовов: верхний кадр: System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
Обходные пути
Вы можете отключить проблемное исправление, установив ключ AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" в значение true, используя один из описанных здесь методов. В этом случае приложение может столкнуться с исходной ошибкой, поэтому переключатель следует удалить после публикации исправления в предстоящем обновлении.
Обходной путь 1
• Добавьте следующую запись в файл app.config, чтобы отключить проблемное исправление в одном приложении.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</runtime>
Обратите внимание, что если в конфигурации приложения уже есть запись для <AppContextSwitchOverrides>, необходимо добавить новый параметр в эту запись, отделенный от других переключателей точкой с запятой:
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
Обходной путь 2
• Примените следующий подраздел реестра, чтобы отключить проблемное исправление для всех приложений WPF на компьютере.
Предупреждение
Неправильное изменение параметров системного реестра с помощью редактора реестра или любым иным путем может привести к возникновению серьезных неполадок. Из-за них вам может потребоваться переустановить операционную систему. Корпорация Майкрософт не гарантирует, что эти проблемы могут быть устранены. Внося изменения в реестр, вы действуете на свой страх и риск.
Расположение: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Имя: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Тип: строка
Значение: true
Обратите внимание, что в 64-разрядных операционных системах также необходимо применить подраздел реестра с тем же именем, типом и значением в расположении: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
Решение
Мы работаем над решением и предоставим обновление в предстоящем выпуске.
Как получить и установить обновление
Установка этого обновления
| Канал выпуска | Доступно | Следующий шаг |
|---|---|---|
| Центр обновления Windows и Центр обновления Майкрософт | Да | Чтобы скачать и установить это обновление, перейдите в раздел "Обновление параметров"& "Безопасность>клиентский компонент Центра обновления Windows а затем выберите "Проверить> наличие обновлений". |
| Каталог Центра обновления Майкрософт | Да | Чтобы получить отдельный пакет для данного обновления, перейдите на веб-сайт каталога Центра обновления Майкрософт. |
| Службы Windows Server Update Services (WSUS) | Нет | Это обновление можно импортировать в WSUS вручную. Инструкции см. в каталоге Центра обновления Майкрософт. |
Сведения о файлах
Чтобы получить список файлов, которые предоставляются в этом обновлении, скачайте сведения о файлах накопительного обновления.
Необходимые условия
Чтобы применить это обновление, необходимо установить платформу .NET Framework 3.5 или 4.8.
Необходимость перезапуска
После применения этого обновления необходимо перезагрузить компьютер, если используются какие-либо затронутые файлы. Перед применением этого обновления рекомендуется закрыть все приложения на основе платформы .NET Framework.
Получение справки и поддержки для этого обновления
- Справка по установке обновлений: вопросы и ответы по клиентскому компоненту Центра обновления Windows
- Защитите себя в Интернете и дома: поддержка безопасности Windows
- Локальная поддержка в зависимости от страны или региона: международная поддержка