February 11, 2020
.NET Framework 4.8
The February 11, 2020 update for Windows 10 Version 1703 includes cumulative reliability improvements in .NET 4.8. We recommend that you apply this update as part of your regular maintenance routines. Before you install this update, see the Prerequisites and Restart requirement sections.
Quality and reliability improvements
- Added opt-in retry mechanism when configuring listening endpoints on the WCF Activation service to address potential race condition when rapidly restarting an IIS application multiple times while under high CPU load which resulted in an endpoint being inaccessible. Customers can opt in to the fix by adding the following AppSetting to SMSvcHost.exe.config under the %windir%\Microsoft.NET\Framework\v4.0.30319 and %windir%\Microsoft.NET\Framework64\v4.0.30319 folders as appropriate. This will retry registering an endpoint 10 times with a 1 second delay between each attempt before placing the endpoint in a failure state.
- There's a race condition when listening paths are being closed down because of an IIS worker process crash and the same endpoints being reconfigured as listening but pending activation. When a conflict is found, this change allows for retrying with the assumption the conflict was transient due to this race condition. The retry count and wait duration are configurable via app settings.
- When using the WCF NetTcp binding, if a client stops responding during the connection handshake, sometimes a service will use the binding receive timeout instead of the open timeout. This improvement ensures the correct open timeout is used during the entire handshake.
- Addresses an issue in System.Windows.Forms.TextBox controls with ImeMode property set to NoControl. These controls now retain IME setting consistent with the OS setting regardles of the order of navigation on the page. Fix applies to CHS with pinyin keyboard.
- Addresses an issue with System.Windows.Forms.ComboBox control with ImeMode set to ImeMode.NoControl on CHS with Pinyin keyboard to retain input mode of the parent container control instead of switching to disabled IME when navigating using mouse clicks and when focus moves from a control with disabled IME to this ComboBox control.
- An accessibility change in .NET Framework 4.8 regressed editing IP address UI in the DataGridView in Create Cluster Wizard in Failover Cluster Services: users can't enter the IP value after control UIA tree restructuring related to editing control movement to another editing cell. Such custom DataGridView cells (IP address cell) and their inner controls are currently not processed in default UIA tree restructuring to prevent this issue.
- A change in .NET Framework 4.8 regressed certain EnterpriseServices scenarios where an single-thread apartment object may be treated as an multi-thread apartment and lead to a blocking failure. This change now correctly identifies single-thread apartment objects as such and avoids this failure.
- There is a race condition in the portable PDB metadata provider cache that leaked providers and caused crashes in the diagnostic StackTrace API. To fix the race, detect the cause where the provider wasn't being disposed and dispose it.
- Addresses an issue when in Server GC, if you are truly out of memory when doing SOH allocations (ie, there has been a full blocking GC and still no space to accommodate your SOH allocation), you will see full blocking GCs getting triggered over and over again with the trigger reason OutOfSpaceSOH. This fix is to throw OOM when we have detected this situation instead of triggering GCs in a loop.
- Addresses an issue caused by changing process affinity from 1 to N cores.
- Addresses an issue with SqlClient Bid traces where information wasn’t being printed due to incorrectly formatted strings.
- Addresses an issue where under some circumstances, Popup's in high-DPI WPF applications are not shown, are shown at the top-left corner of the screen, or are shown/rendered incompletely.
- Addresses an issue when creating an XPS document in WPF where font subsetting may result in a FileFormatException if the process of subsetting would grow the font. To avoid this exception, set the AppContext switch named ‘Switch.MS.Internal.TtfDelta.AllowFontReuseDuringFontSubsetting’ to ‘true’, using one of the methods described here under “AppContext for Library Consumers”.
- Addresses incorrect width of the text-insertion caret in TextBox et al., when the system DPI exceeds 96. In particular, the caret rendered nothing on a monitor with lower DPI than the primary, in some DPI-aware situations.
- Addresses a hang arising during layout of Grids with columns belonging to a SharedSizeGroup
- Addresses a hang and eventual StackOverflowException arising when opening a RibbonSplitButton, if the app programmatically disables the button and replaces its menu items before the user releases the mouse button.
- Addresses certain hangs that can arise while scrolling a TreeView.
- Strengthens UdpClient against incorrect usage in network configurations with an exceptionally large MTU.
Acquistion & Deployment
- Addresses an issue where the installation of .NET 4.8 on Windows machines prior to 1809 build prevents .NET-specific settings to be migrated during Windows upgrade to build 1809. Note: to prevent this issue, this update must be applied before the upgrade to a newer version of Windows.
1 Windows Communication Foundation (WCF)
2 Common Language Runtime (CLR)
3 Windows Presentation Foundation (WPF)
How to obtain and install the update
Install this update
This update will be downloaded and installed automatically from Windows Update.
To get the standalone package for this update, go to the Microsoft Update Catalog website.
For a list of the files that are provided in this update, download the file information for cumulative update.
To apply this update, you must have .NET Framework 4.8 installed.
You must restart the computer after you apply this update if any affected files are being used. We recommend that you exit all .NET Framework-based applications before you apply this update.
Update replacement information
This update replaces previously released updates 4532934.