Skip to content

Commit c413183

Browse files
authored
Merge pull request #406 from Microsoft/5C
.NET Framework May 2017 Preview of Quality Updates
2 parents a5bddcd + 5b8d85f commit c413183

3 files changed

Lines changed: 122 additions & 3 deletions

File tree

releases/net46/dotnet46-changes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
.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).
55

6+
Post-release servicing updates are also included, appended to the end of each product area. The following servicing updates have been included:
7+
8+
- [May 2017](https://blogs.msdn.com/dotnet)
9+
610
## ASP.NET
711

812
* State Service startup type is correctly persisted. [1038077]
@@ -145,6 +149,7 @@
145149
* Fixed the size of Vector<T>. [1020874]
146150
* System.Drawing.Icon.ToBitmap() supports PNG framed icons. [1084802]
147151
* Uri constructor doesn't throw ArgumentOutOfRangeException when parsing certain URIs with escaped international characters. [1173958]
152+
* 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]
148153

149154
## CLR
150155

@@ -280,3 +285,4 @@
280285
* Window chrome doesn't turn black on maximize with GlassFrameThickness -1. [1176703]
281286
* Improved RichTextBox typing performance on low-end GPUs. [1177602]
282287
* Applications continue to promote touch events to click after digitizer is removed and reconnected while touching the digitizer. [1186170]
288+
* 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]

releases/net461/dotnet461-changes.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
.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).
55

6+
Post-release servicing updates are also included, appended to the end of each product area. The following servicing updates have been included:
7+
8+
- [May 2017](https://blogs.msdn.com/dotnet)
9+
610
## ASP.NET
711

812
* TreeNode.ImageTooltip is rendered as title attribute [101518]
@@ -11,6 +15,11 @@
1115
* MaintainScrollPositionOnPostBack works with zoom on Chrome [120243]
1216
* RegEx can be opted out for EmailAddresses, Phone, and URL attributes [142685]
1317
* Added a MatchTimeout property to RegularExpressionAttribute [142685]
18+
* In the following scenarios, ASP.NET may duplicate the cookie in response headers:
19+
- Before a request cookie is loaded, the response cookie is added.
20+
- A response cookie is added, and then a native module sets the response cookie.
21+
22+
With the fix, ASP.NET makes sure that response cookies are not duplicated. [359376] [Added: May 2017]
1423

1524
## BCL
1625

@@ -46,6 +55,7 @@
4655
* Uri constructor doesn't throw ArgumentOutOfRangeException when parsing certain URIs with escaped international characters [123235]
4756
* Fixed a bug that prevented some localized text from displaying properly [145634]
4857
* Fixed a bug that caused the Exception Catch event to get the incorrect source line [142525]
58+
* 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]
4959

5060
## CLR
5161

@@ -178,3 +188,7 @@
178188
* Fixed an issue with partial trust applications running on a machine with a touch device [151160]
179189
* Fixed a bug caused by loading multiple Microsoft Visual Studio Tools for Office (VSTO) addins on touch enabled devices [142484]
180190
* Fixed a bug that caused Visual Studio to hang when saving a XAML file [110669]
191+
* If two WPF applications that target Side by Side (SxS) .NET versions (3.5 and 4.X) are loaded in the same process issues can occur on touch/stylus enabled machines. A common example of this is loading VSTO add-ins written in WPF. This is due to an issue with choosing the correct PenIMC.dll version for each application. This fix allows WPF to properly differentiate between both DLLs and function correctly. [362710] [Added: May 2017]
192+
* If two WPF applications that target Side by Side (SxS) .NET versions (3.5 and 4.X) are loaded in the same process issues can occur on touch/stylus enabled machines. A common example of this is loading VSTO add-ins written in WPF. This is due to an issue with choosing the correct PenIMC.dll version for each application. This fix allows WPF to properly differentiate between both DLLs and function correctly. [377649] [Added: May 2017]
193+
* In some situations, it is possible that WPF attempts to process a touch/stylus input with a null StylusDevice. This can cause a NullReferenceException. This fix checks for this issue and guards against it. [378295] [Added: May 2017]
194+
* 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]

releases/net462/dotnet462-changes.md

Lines changed: 102 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
.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).
55

6+
Post-release servicing updates are also included, appended to the end of each product area. The following servicing updates have been included:
7+
8+
- [May 2017](https://blogs.msdn.com/dotnet)
9+
610
## Active Directory Services
711

812
* On calls made to System.DirectoryServices.AccountManagement UserPrincipal.GetAuthorizationGroups method against an Active Directory forest which contains SID History values for migrated users, an empty GroupPrincipal will be added to the list returned by GetAuthorizationGroups for every group with a migrated user SID. [191563]
@@ -19,6 +23,53 @@
1923
* Improve error message localization for DataAnnotationValidiation in ASP.NET model binding and Dynamic data. [176731]
2024
* Enable customers using the Session State Store Providers with task returning methods. [179604]
2125
* Enabling task returning methods to be used with the OutputCache Providers, to allow ASP.Net customers to get the scalability benefits of async. [187841]
26+
* After installing 4.6.2, the max-age value in the following requests coming from Cache is incorrectly set. The issue is not preventing OutputCache on the server side to functional but will cause confusions and problems if customer applications looked at the max-age in the cache control headers. [288340] [Added: May 2017]
27+
* In the following scenarios, ASP.NET may duplicate the cookie in response headers:
28+
- Before a request cookie is loaded, the response cookie is added.
29+
- A response cookie is added, and then a native module sets the response cookie.
30+
31+
With the fix, ASP.NET makes sure that response cookies are not duplicated. [364615] [Added: May 2017]
32+
* Issue #1: Users might obtain a NULL result when calling OperationContext.Current
33+
34+
This issue occurs when one creates an OperationContextScope and proceeds to call OperationContext.Current within the using clause. A common pattern that is prone to this failure is the following:
35+
36+
```csharp
37+
using (new OperationContextScope(OperationContext.Current))
38+
{
39+
OperationContext context = OperationContext.Current; //OperationContext.Current returns null
40+
// ...
41+
}
42+
```
43+
44+
To work around this issue, one needs to change the code to something similar to the following:
45+
46+
``` csharp
47+
OperationContext ocx = OperationContext.Current;
48+
using (new OperationContextScope(OperationContext.Current))
49+
{
50+
OperationContext.Current = new OperationContext(ocx.Channel);
51+
// ...
52+
}
53+
```
54+
Issue #2: Users might run into a deadlock when using Reentrant services.
55+
56+
This issue occurs when one creates a Reentrant service ? which restricts instances of the service to one thread of execution at a time. Users prone to running into this problem will have the following ServiceBehaviorAttribute in their code:
57+
58+
```csharp
59+
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
60+
```
61+
To work around this issue, users should set the ConcurrencyMode of their service to ConcurrencyMode.Single or ConcurrencyMode.Multiple, and provide the appropriate synchronization primitives to ensure a single thread can execute a single method at a time.
62+
63+
We have rolled out an update of System.ServiceModel.dll and we strongly encourage users to patch their existing .NET 4.6.2 framework. The patch fixes Issue #1, disables the flow of OperationContext.Current by default, and provides an Opt-In option to enables feature.
64+
65+
To enable the flow of OperationContext.Current across multiple threads in async operations, use the following AppSettings key:
66+
67+
```xml
68+
<appSettings>
69+
<add key="Switch.System.ServiceModel.DisableOperationContextAsyncFlow" value="false"/>
70+
</appSettings>
71+
```
72+
Setting the value of Switch.System.ServiceModel.DisableOperationContextAsyncFlow to true will disable the flow of the ExecutionContext in OperationContext.Current and will effectively revert the behavior to pre-4.6.2, which is the default behavior after this patch. Setting the value to false will enable the feature and should not be used in Reentrant services. [253477] [Added: May 2017]
2273

2374
## BCL
2475

@@ -62,6 +113,13 @@
62113
* Fixed potential errors with String comparison hitting before the AppDomain is fully initialized. [200330] and [201338]
63114
* Fixed file path syntax to correctly handle device path syntaxes (\\.\, \\?\) [202926]
64115
* Fix for StringBuilder overflow and the length becoming negative when > 2GB of data is added/inserted. [216203]
116+
* Users of SignedXml may get an exception like the following when running in some modes on older versions of Windows (for example, executing without loading the user profile on Windows Server 2008r2).
117+
118+
```console
119+
System.Security.Cryptography.CryptographicException: Object was not found.
120+
at System.Security.Cryptography.NCryptNative.CreatePersistedKey(SafeNCryptProviderHandle provider, String algorithm, String name, CngKeyCreationOptions options)
121+
```
122+
[372920] [Added: May 2017]
65123

66124
## ClickOnce
67125

@@ -108,13 +166,46 @@
108166
* Allowed the debugger to determine the layout of types without an instance of the type. [211562]
109167
* Reduced events are being sent for telemetry to the CLR for Windows Server OSes. [211794]
110168
* Support resolving Windows Runtime references through simple name in .NET SDK. [219126]
169+
* Reliability improvements in RYUJIT complier code generation due to a missed AVX encoding case. [259784] [Added: May 2017]
170+
* On a machine with many processors, there might a desire to have some processes use only some processes with Server GC. For example if you have a 40-proc machine, you might want to have process 0 use only 10 procs and process 1 use only 6. So process 0 gets 10 GC heaps/threads and process 1 gets 6. Below is an example of using these Server GC configs:
171+
172+
```xml
173+
<configuration>
174+
<runtime>
175+
<gcServer enabled="true"/>
176+
<GCHeapCount enabled="6"/>
177+
<GCNoAffinitize enabled="true"/>
178+
<GCHeapAffinitizeMask enabled="144"/>
179+
</runtime>
180+
</configuration>
181+
```
182+
183+
`<GCNoAffinitize enabled="true"/>` specifies to not affinitize the Server GC threads with CPUs.
184+
`<GCHeapCount enabled="6"/>` 6 specifies you want 6 heaps. The actual # of heaps is the min of what you specify and what your proces is allowed to use.
185+
`<GCHeapAffinitizeMask enabled="144"/>` the # is in decimal so this is 0x90, meaning you want to use those 2 bits as your process mask. The actual # of heaps is the min of what you specify, what your proces is allowed to use and the # of set bits in this mask you specify. [274126] [Added: May 2017]
186+
* If you are marshaling array of struct A and also array of struct B as SAFEARRAY, and struct A/B has identical GUIDs, you may run into a memory leak. [365349] [Added: May 2017]
187+
* If you are marshaling array of struct A and also array of struct B as SAFEARRAY, and struct A/B has identical GUIDs, you may run into a memory leak. [424243] [Added: May 2017]
188+
* If you are marshaling array of struct A and also array of struct B as SAFEARRAY, and struct A/B has identical GUIDs, you may run into a memory leak. [431586] [Added: May 2017]
189+
* Rare crashes or deadlocks can happen if a GC occurs while another thread is running NGen'ed code which is making the initial call into a static method within the same module where one or more parameter types involve type-forwarded valuetypes. [378601] [Added: May 2017]
190+
* Applications that frequently queue bursts of work items to the .NET ThreadPool, with idle or light activity between bursts, may be shown using PerfView to spend a significant amount of CPU time in clr!ThreadpoolMgr::UnfairSemaphore::Wait in a spin-wait. A new configuration variable is exposed to configure the spinning limit. The environment variable COMPlus_ThreadPool_UnfairSemaphoreSpinLimit may be set to a lower value (default is 0x32) to reduce the amount of spinning done, or zero (0) to disable spinning, before launching the application. Note that changes to this configuration variable may negatively affect the performance of applications, and such changes are not supported. [381905] [Added: May 2017]
191+
192+
## Entity Framework
193+
194+
* When there are more than 1000 queries in the EF 4.x application, the application may experience slowness due to exceeding the size limit of the query cache. With this fix, you can change the query cache size through the following AppSetting.
195+
```xml
196+
<appSettings>
197+
<add key="EntityFramework_QueryCacheSize" value="3000"/>
198+
</appSettings>
199+
```
200+
[379134] [Added: May 2017]
111201

112202
## Networking
113203

114204
* Fixed a crash with Null Reference in PinnableBufferCache.Free. [144864]
115205
* Fix in bulletin MS16-065. [186985]
116206
* Added CNG certificate support to NCL code in System.dll. [195318]
117207
* An AccessViolationException gets thrown in HttpListenerRequest.GetTlsTokenBindingRequestInfo() if the RequestBuffer of the HttpListenerRequest has been moved by the garbage collector. This AccessViolation is caused by the fact that HttpListenerRequest is dereferencing a pointer inside RequestBuffer, without adjusting the pointer address the way other HttpListenerRequest methods do. This is now fixed. [204580]
208+
* When attempting to access token bindings from the GetTlsTokenBindings API, an Access Violation exception can be thrown if managed memory has moved during the request. Pointers are now updated to reflect any memory movement. [267430] [Added: May 2017]
118209

119210
## SQL
120211

@@ -124,6 +215,7 @@
124215
* Disallowed WAM option in native ADAL for AAD authorization. [201411]
125216
* Fix in bulletin MS16-091. [222831]
126217
* Fix for a crash that may occur when the connection pool is being replenished and during replenishment of the pool, the connection to SQL server fails. [229717]
218+
* An OverflowException or IndexOutOfRangeException may be thrown during the prelogin phase of opening a SQL Connection due to receiving a TDS packet that is smaller than expected. [395584, 395586, 395589, 395592] [Added: May 2017]
127219

128220
## WCF
129221

@@ -164,6 +256,7 @@
164256
* Fixed printing delay in previewing the document with a network printer. [197824]
165257
* Added Long path support for Windows 10 Anniversary Update in ClientConfigPath. [202970]
166258
* Fixed X1 Professional Client "ok" button is gray and disabled after select Desktop in browse for folder. [207279]
259+
* A windows Forms Application with MDI parent form under certain conditions will remove active child forms from the MDI child windows list. This happens when the closing of the child form is canceled by the user and the child windows list menu item is opened. [388401] [Added: May 2017]
167260

168261
## Workflow
169262

@@ -178,9 +271,9 @@
178271
* Fixed potential periodic hangs or poor performance of a WPF application running on a device that has touch support. This is mostly seen when running over a touch-enabled remote desktop or other touch enabled remote access solutions. [146399]
179272
* Enable automatic invocation and dismissal of the touch keyboard in WPF applications without disabling WPF stylus/touch support on Windows 10 [178044]
180273
* Fixed missing glyph symbol display issues for those WPF applications that render text in the following ranges using a font that does not contain these ranges. [165725]
181-
Ranges:
182-
Unicode = "0000-052F, 0590-06FF, 0750-077F, 08A0-08FF, 1D00-1FFF, 2C60-2C7F, A720-A7FF, FB00-FB0F, FB1D-FBFF"
183-
Unicode = "FC00-FDCF, FDF0-FDFF, FE20-FE2F, FE70-FEFE"
274+
Ranges:
275+
- Unicode = "0000-052F, 0590-06FF, 0750-077F, 08A0-08FF, 1D00-1FFF, 2C60-2C7F, A720-A7FF, FB00-FB0F, FB1D-FBFF"
276+
- Unicode = "FC00-FDCF, FDF0-FDFF, FE20-FE2F, FE70-FEFE"
184277
* Developers of WPF applications on .NET 4.6.1 may notice that the number of promotions from a touch move event to a mouse move event do not correspond 1:1. This change ensures that there is a corresponding mouse move promotion for every applicable touch move. [169470]
185278
* Enable WPF Applications to look and feel great in multi DPI environments. This means crisper text, sharper images and general polish. [191569]
186279
* WPF applications that allocate large numbers of bitmaps over time can possibly see performance issues such as frequent pauses and large numbers of garbage collections. This fix changes the bitmap garbage collection strategy to help alleviate these issues. [121913]
@@ -208,3 +301,9 @@
208301
* Avoid unnecessary iteration through all items displayed in a virtualized ItemsControl with ScrollUnit=Item [202599].
209302
* Fixed XPS printing crash when InvariantCulture is used. [143947]
210303
* Fixed truncation of contents during copy & paste in HTML format when the WPF DataGrid control contains full width characters, for e.g. Japanese. [104825]
304+
* In some situations, it is possible that WPF attempts to process a touch/stylus input with a null StylusDevice. This can cause a NullReferenceException. This fix checks for this issue and guards against it. [381810] [Added: May 2017]
305+
* In some situations, it is possible that WPF attempts to process a touch/stylus input with a null StylusDevice. This can cause a NullReferenceException. This fix checks for this issue and guards against it. [378292] [Added: May 2017]
306+
* There is a memory leak when a WPF application includes a D3DImage control, changes both the size and the content of the image, and runs with software rendering (e.g. running over Remote Desktop). [261136] [Added: May 2017]
307+
* 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]
308+
* A WPF application that repeatedly changes the Template of a TextBox can encounter a memory leak of TextBoxView objects. The Template change can happen implicitly, for example by moving the TextBox in and out of the main visual tree, or by moving it between scopes of different implicitly-defined Styles. [245230] [Added: May 2017]
309+
* A WPF application can encounter an ArugmentOutOfRangeException if it uses a DataGrid with column virtualization enabled, calls DataGrid.ScrollIntoView(row, column) before the column widths are known, then immediately changes the DataGrid.Columns collection before the DataGrid has rendered. [271673] [Added: May 2017]

0 commit comments

Comments
 (0)