注意
- 发布日期:
2020 年 7 月 21 日 - 版本:
.NET Framework 3.5 和 4.8
适用于 Windows 10 版本 1903、Windows Server 1903 RTM、Windows 10 版本 1909 和 Windows Server 版本 1909 的 2020 年 7 月 21 日更新包括 .NET 3.5 和 4.8 中的累积可靠性改进。 我们建议你将此更新作为定期维护工作的一部分进行应用。 安装此更新之前,请参阅先决条件和重新启动要求部分。
质量与可靠性改进
| CLR1 | - .NET Framework 4.8 中的更改回归了某些 EnterpriseServices 方案,其中单线程单元对象可能被视为多线程单元并导致阻塞失败。 此更改现在可以正确识别单线程单元对象本身,并避免此失败。 - 解决了具有 IBC 配置文件数据的程序集中导致 Ngen 工作进程崩溃并回退到完整的本机映像的问题。 - 解决了线程中止传递期间可能发生的罕见崩溃问题。 |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer 可能会导致内存中 SQL 表的事务失败。 客户端可能会看到异常,并显示消息“执行超时已过期。 操作完成前超时时间已过,或服务器没有响应。”SqlBulkCopy.WriteToServer 在向 SQL Server 发送数据后) 发送注意令牌 (取消消息,导致服务器中止内存表的事务。 |
| ASP.NET | - 在 ASP.Net 遥测数据中使用符合 FIPS 的哈希值。 - 解决了表单身份验证和会话状态配置部分的“cookieSameSite”属性配置中不允许使用“未指定”值的问题。 |
| WPF2 | - 解决了在 WPF TextBox 或 RichTextBox 中启用拼写检查时出现“etc.”、“eg.”等单词的问题。 被错误地识别为拼写错误。 - 解决了当某些在 .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 时,使用 UPN Windows 用户名的格式与 NetworkCredential 的用户名属性中类似 username@dns.domain 时,WCF 会错误地拆分用户名和 dns.domain,将它们放入 UserName 和 Domain 属性中。 这在某些情况下是无效的,将导致身份验证失败。 此修补程序将删除使用 UPN 用户名时的凭据修改。 可以通过将 AppSetting “wcf:enableLegacyUpnUsernameFix” 设置为 true 来重新启用此修改。 |
| 网络库 | - 解决了 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 通信基础
此更新中的已知问题
WPF (Windows Presentation Framework) 使用属于公共线程的两个或多个 HostVisual 元素的应用程序,其中两个 HostVisual 元素被要求大致同时与其视觉目标断开连接,则邮件失败并出现以下错误:
异常类型:System.COMException
消息:UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
调用堆栈:顶部框架是 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”/>
</runtime>
请注意,如果应用程序配置已具有 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 安全支持
- 根据国家/地区提供本地支持:国际支持