.NET Framework release notes describe product improvements grouped by product area. Each change includes a Microsoft-internal VSTS bug number, which acts as a useful unique ID for each change (can be used to report issues or when calling Microsoft Support).
* Fixed a crash in IIS Manager when opening content view. [1093488]
* New web site template doesn't cause warnings. [1099514]
* Browsing to an asmx file or wsdl with an IDN binding set in IIS doesn't cause a URI parsing exception. [110223]
* Request validation can be completely disabled in an application. [412689]
* EmailAddress attribute can load error message from resource. [468241]
* GridView.CreateChildControl returns the correct CreatedRowCount when CustomPaging is enabled. [782891]
* Custom output cache providers don't cause exception on cache policy settings serialization when more than one invalidation handler is present. [789904]
* VaryByContentEncoding is now case-insensitive. [830641]
* HttpContextWrapper.IsPostNotification returns the correct value based on pipeline event. [839206]
* HtmlTextWriter renders <br/> element as self-closing tag. [852940]
* Posting invalid payload to ASP.NET with trace and 4.0 request validation enabled doesn't crash the worker process. [867196]
* MemoryCache doesn't throw null reference expression when CacheItemPolicy.UpdateCallback is defined. [879799]
* DiskBuildResultCache.CacheBuildResult has a null check for CompiledResult.ResultAssembly. [880034]
* ContentDisposition constructor doesn't modify date values of the provided disposition string. [884362]
* Calling MachineKey.Decode on ASP.NET application start or on first request doesn't throw null reference exception. [896595]
* MemoryCache Trim method evicts all items. [902234]
* Overloads of HttpUtility.UrlEncode and UrlEncodeToBytes taking (byte[] bytes, int offset, int count) respects the offset and count parameter values. [912606]
* Setting culture to auto:* in web.config doesn't cause CultureNotFoundException. [714999]
* Projected DirectX value types can be marshalled to WinRT. [1166515]
* New WeakReference<T>() doesn't cause COMException. [973791]
* Persian calendar is a supported formatting calendar, correctly handles part of day formatting, and uses correct era names. [1068336], [1117304], [1154104], [1087763]
* DateTime Parse and TryParse behave the same on en-CA culture. [1117950]
* AAD has integrated check for the pooled connection. [1118488]
* French and Norwegian culture display name includes proper Unicode characters. [1147042]
* ConcurrentDictionary serialization format changed, but is upwards compatible from .NET Framework 4.5 to .NET Framework 4.6. [1167398]
* SqlBulkCopy truncates data before encrypting. [1159595]
* GetProviderSpecificValue returns proper data type for encrypted columns when underlying data is null. [1159595]
* French and Norwegian culture display name includes proper Unicode characters. [1147042]
* When using RSACng (or another class which directly or indirectly uses RSACng) to perform encryption using RSAEncryptionPadding.Pkcs1 when the private key is stored on a smartcard (or other hardware security module) an exception of System.Security.Cryptography.CryptographicException: The parameter is incorrect. at System.Security.Cryptography.NCryptNative.DecryptData[T](SafeNCryptKeyHandle key, Byte[] data, T& paddingInfo, AsymmetricPaddingMode paddingMode, NCryptDecryptor`1 decryptor) [299303] [Added: May 2017]
* DataContractSerializer doesn't throw InvalidCastException on StringDictionary serialization. [1008489]
* Fixed that WCF friendly instance names limited to 64 characters could cause false duplicates as instance names support up to 128 characters. [1022700]
* Roles.GetRolesForUser() doesn't throw NullReferenceException in a WCF service hosted in ASP.NET with the AspNetCompatibilityEnabled flag set to false. [1022754]
* ProcessMessage31 uses cached delegate for ProcessMessage4. [1030713]
* System.ServiceModel.Syndication.SyndicationFeed can parse <sourceurl="..."/>. [1088425]
* Client certificate information is added as claim by default. [1103426]
* Warning message added if users enable "wcf:ensureUniquePerformanceCounterInstanceNames" app setting without the user hosting the service having the proper permissions. [1108004]
* Fixed null reference and access violation exceptions in System.ServiceModel.Channels.MessageHeaders.GetBufferedMessageHeaderReaderAtHeaderContents. [1116949]
* WebResponseInputStream doesn't swallow the exception stating that the stream doesn't support read timeouts. [288814]
* Auto-generated help produces correct links. [852865]
* Added a keep-alive timeout on WCF ServiceHost. [948289]
* Fixed a null reference exception in System.Runtime.Serialization when ETW is enabled. [1137758]
* Fixed a UI thread deadlock in pen input code. [1010998]
* Margins set in sections in FlowDocuments are respected. [1104560]
* Scaling doesn't suffer from rounding errors on odd DPI. [1104807]
* Improved thread safety when loading the same XAML resource for the first time in multiple UI threads. [12520]
* Touch and stylus events don't stop firing after disconnecting then reconnecting to a remote desktop session. [659672]
* Fixed a bouncing scrollbar with custom WPF DataTemplate. [759702]
* GetFixedDocumentSequence doesn't throw with error message "UnicodeString property does not contain enough characters to correspond to the contents of Indices property." [796882]
* Fixed slow and jumping WPF TreeView issue. [810163]
* Fixed overflow exception in WPF System.ServiceModel.Channels.TransmissionStrategy.AddToWindow. [811734]
* Fixed InvalidOperationException in multithread application by synchronizing access to the static Stack<> that holds SerializationContext for recycling. [834091]
* Snapping and unsnapping the keyboard on a Surface Pro doesn't cause null reference exception in WPF touch input stack. [839668]
* TreeView doesn't vanish after node collapse and expand. [888530]
* Selected items in a WPF ListBox or ListView control are correct when items.refresh is called from code behind. [945407]
* Fixed performance regression in WPF applications caused by the loading of three additional assemblies. [946388]
* XamlBuildTask doesn't sporadically report error "Object '<generated-name>' has been disconnected or does not exist at the server" on TFS builds. [955825]
* Fixed exception at CaretElement.ConvertToInt32 in WPF TextBox.Focus. [958636]
* WPF uses the most recent distance threshold from the registry for recognizing double taps. [959263]
* WPF allows for transparent child windows. [959266]
* Fixed FlowDocument exception "this TextNavigator has no scoping text element." [960678]
* FlowDocument preserves spaces after being saved using XamlWrite. [960699]
* Improved UI scrolling when using a virtualized ListView with a pixel scroll unit. [965665]
* Fixed null reference exceptions in WPF System.Windows.Controls.ItemContainerGenerator.ContainerFromIndex. [966623]
* Improved touch services. [971187]
* Fixed RichTextBox spell checking issue with possessives. [1170165]
* Window chrome doesn't turn black on maximize with GlassFrameThickness -1. [1176703]
* Improved RichTextBox typing performance on low-end GPUs. [1177602]
* Applications continue to promote touch events to click after digitizer is removed and reconnected while touching the digitizer. [1186170]
* A WPF application with a virtualizing list control (ListBox, DataGrid, TreeView, etc.) can encounter an ArgumentNullException when scrolling to an item whose size has substantially decreased since the last time it was re-virtualized. [273803, 282662, 282664, 367282, 367285] [Added: May 2017]