注意
- 发布日期:
2020 年 7 月 21 日 - 版本:
.NET Framework 3.5 和 4.8
2020 年 7 月 21 日针对 Windows 10 版本 1903 和 Windows Server 1903 RTM 和 Windows 10 版本 1909 和 Windows Server 版本 1909 的更新包括 .NET 3.5 和 4.8 中的累积可靠性改进。 我们建议你将此更新作为定期维护工作的一部分进行应用。 安装此更新之前,请参阅先决条件和重新启动要求部分。
质量与可靠性改进
| CLR1 | - .NET Framework 4.8 中的更改倒退了某些 EnterpriseServices 方案,其中单线程单元对象可能被视为多线程单元,并导致阻塞故障。 此更改现在可正确标识单线程单元对象,并避免此故障。 - 解决了使用 IBC 配置文件数据的程序集中导致 Ngen 工作进程崩溃并回退到完整本机映像的问题。 - 解决线程中止传递期间可能发生的罕见崩溃。 |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer 可能会导致对内存中 SQL 表的事务失败。 客户端可能会看到一个异常,并显示消息“执行超时已过期。 操作完成之前已过的超时期限或服务器未响应。”向 Sql Server 发送数据后,SqlBulkCopy.WriteToServer 正在) 发送注意令牌 (取消消息,导致服务器中止内存中表的事务。 |
| ASP.NET | - 在 ASP.Net 遥测数据中使用符合 FIPS 的哈希。 - 解决了表单身份验证和会话状态配置部分的“cookieSameSite”属性的配置中不允许“未指定”值的问题。 |
| WPF2 | - 解决了在 WPF TextBox 或 RichTextBox 中启用拼写检查时出现的问题,如“etc.”、“例如” 被错误地标识为拼写错误。 - 解决了在 .NET 4.8 上运行的某些 Per-Monitor 感知 WPF 应用程序偶尔可能会遇到 exceptionSystem.ComponentModel.Win32Exception 崩溃的问题。 - 解决了 TextBlock 重排 (在呈现和命中测试期间和度量期间) 做出不同的换行决策的问题。 症状包括缺少文本,以及编程文本处理期间 FailFast 崩溃。 - 解决了由于 HostVisual 在错误线程上断开其目标连接而导致的呈现线程失败的问题。 - 解决了滚动树树不统一的 TreeView 时挂起的问题,因为给定节点的子级管理其大小大相径庭的子树。 - 解决了关闭用户代码重新关闭的工具提示时可能发生的崩溃问题。 - 当 HwndHost 离开可视化树时,将创建堆栈跟踪。 这很昂贵,而且通常没有必要。 现在,逻辑已更改为仅在出现异常情况时创建堆栈跟踪。 - 解决 System.Speech.SpeechSynthesizer 中的内存泄漏问题。 - 如果系统剪贴板被其他进程锁定,DataGrid 的 Copy 命令将引发异常。 这会崩溃,因为堆栈上通常没有应用代码来捕获异常。 在这种情况下,TextBox (和其他应用(如记事本、Word、浏览器) )的行为会以静默方式失败 - 不会将任何内容复制到剪贴板,但不例外。 WPF 应用现在可以通过在其 app.config 文件中设置 <appSettings><add key=“ShouldThrowOnDataGridCopyOrCutFailure” value=“false”/></appSettings>来选择加入此行为。 - 解决了为 FixedPage 文档构造内部模型时的问题。 出于编辑操作(例如选择和复制/粘贴)的目的,某些文本以错误的顺序显示。 |
| WCF3 | - 在使用 NetTcpBinding 或 NetNamedPipeBinding 时,使用格式类似于 username@dns.domain NetworkCredential 的 username 属性的 UPN Windows 用户名时,WCF 会错误地拆分用户名和 dns.domain,将其放入 UserName 和 Domain 属性中。 这在某些情况下无效,并会导致无法进行身份验证。 此修复删除使用 UPN 用户名时的凭据修改。 可以通过将 AppSetting“wcf:enableLegacyUpnUsernameFix”设置为 true 来重新启用修改。 |
| Net 库 | - 解决 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>如果应用程序面向框架的早期版本并选择加入以前发布的辅助功能集,则向现有 AppContextSwitchOverrides部分添加一"Switch.UseLegacyAccessibilityFeatures.4=false"个开关:<?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)
2Windows 演示基础 (WCF)
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”设置为 true 来禁用有问题的修复。 这会将你的应用公开给原始 bug,因此,在通过即将发布的更新发布修补程序后,你应该删除开关。
解决方法 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 应用程序有问题的修复。
警告
使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要你重新安装操作系统。 Microsoft无法保证这些问题可以解决。 修改注册表的风险由您自行承担。
位置:HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
名称:Switch.System.Media.HostVisual.DisconnectsOnWrongThread
类型:字符串
值:true
请注意,在 64 位操作系统上,还需要在以下位置应用具有相同名称、类型和值的注册表子项:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
解决方案
我们正在努力研究解决方案,并将在即将发布的版本中提供更新。
如何获取和安装更新
安装此更新
| 发布渠道 | 可用 | 下一步 |
|---|---|---|
| Windows 更新和 Microsoft 更新 | 是 | 若要下载并安装此更新,请转到“设置>更新 & 安全性>Windows 更新”,然后选择“检查更新”。 |
| Microsoft 更新目录 | 是 | 若要获取此更新的独立程序包,请转到 Microsoft 更新目录网站。 |
| Windows Server Update Services (WSUS) | 否 | 可以手动将此更新导入 WSUS。 有关说明,请参阅 Microsoft更新目录 。 |
文件信息
有关此更新中提供的文件列表,请下载累积更新的文件信息。
先决条件
若要应用此更新,必须安装 .NET Framework 3.5 或 4.8。
重启要求
如果未使用受影响的文件,则应用此更新之后无需重新启动计算机。 我们建议你退出所有基于 .NET Framework 的应用程序,然后再应用此更新。
如何获取此更新的相关帮助和支持
- 有关安装更新的帮助:Windows 更新常见问题解答
- 在线和家中保护自己:Windows 安全中心支持
- 根据你的国家/地区提供本地 支持:国际支持