21 июля 2020 г. — Предварительная версия накопительного пакета обновления KB4562900 для платформа .NET Framework 3.5 и 4.8 для Windows 10 версии 1903 и Windows Server 1903 RTM и Windows 10 версии 1909 и Windows Server версии 1909

Применяется к
.NET

Примечание

  • Дата выхода:
    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.

Получение справки и поддержки для этого обновления