This article describes hotfix rollup 3009678 that is available for the Microsoft .NET Framework 4.5.2, the .NET Framework 4.5.1, and the .NET Framework 4.5. For more information about the issues that the hotfix rollup resolves, see the "Issues that this hotfix rollup resolves" section.
The offline package can be used in situations where the web installer cannot be used because of lack of Internet connectivity. Wherever possible, Microsoft recommends you use the Web Installer instead of the offline package for optimal efficiency and bandwidth requirements.
This update bundles the following individual packages for different products and platforms.
The .NET Framework 4.5, 4.5.1, and 4.5.2 on Windows Vista SP2, Windows Server 2008 SP2, Windows 7 SP1, and Windows Server 2008 R2 SP1
The .NET Framework 4.5, 4.5.1, and 4.5.2 on Windows 8 and Windows Server 2012
The .NET Framework 4.5.1, and 4.5.2 on Windows 8.1 and Windows Server 2012 R2
A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that this article describes. Apply it only to systems that are experiencing this specific problem.
To resolve this problem, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft website:
http://support.microsoft.com/contactus/?ws=supportNote In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
To apply this hotfix, you must have the .NET Framework 4.5.2, the .NET Framework 4.5.1, or the .NET Framework 4.5 installed.
You have to restart the computer after you apply this hotfix if any affected files are being used. We recommend that you close all .NET Framework-based applications before you apply this hotfix.
Hotfix replacement information
This hotfix package does not replace a previously released hotfix package.
Issues that this hotfix rollup resolves
In the .NET Framework 4.5, keyboard navigation in a WPF TreeView does not work correctly when a TreeViewItem contains a focusable element such as a Button, Check Box, or Text Box. Pressing the Up Arrow or Down Arrow may change the focus to the wrong element, or may not change the focus at all.
The hotfix resolves this problem so that the Up Arrow and Down Arrow always change the focus to the correct element.
When you call GlyphRun.InkBoundingBox() or any of its dependents such as FormattedText.Extent in a WPF application, the return values are slightly larger in the .NET Framework 4.5 than in the .NET Framework 4.0. The .NET Framework 4.0 had a bug that sometimes occurred in which text was not drawn (depending on the font, font size, and the specific characters). The bug was fixed in the .NET Framework 4.5 by enlarging the ink bounding box slightly.
This hotfix adds a configuration flag to opt out of the fix. An application that opts out will have the same return values as in the .NET Framework 4.0, but may also encounter the "disappearing text" bug.
To opt out of the fix, add the following key to the appSettings section of the application's configuration file:<add key="IncludeAllInkInBoundingBox" value="false"/> Issue 3
Consider the following scenario:
You have an ASP.NET web project in which web pages implements client callbacks programmatically without postbacks.
The form's action is an international domain name URL (for example, the URL's domain name contains Unicode characters).
The client is using Internet Explorer 10 or an earlier version of Internet Explorer.
In this scenario, the client webpage does not work. For example, nothing happens when you click a button that is supposed to trigger a callback.
Assume that you create a System.Workflow.Activities.StateMachineWorkflowActivity class together with an Activities property that specifies an ActivitiesCollection list. The list contains many activities (for example, 300 or more activities) that include State and non-State activities.
In this situation, transitions to State activities that are near the end of the ActivitiesCollection list take much more time to finish than transitions to State activities that are near the beginning of the list.
This hotfix removes unnecessary ActivitiesCollection list traversals when it searches for the target State activity by name during a state transition. Therefore, less time is required to transition to State activities that are near the end of the ActivitiesCollection list.
Assume that WCF performance counters are enabled. However, some instance names are shortened because they are longer than 64 characters. Additionally, two shortened instance names may be the same. In this scenario, WCF does not create the counter instances as expected.
To enable this hotfix, add the following line to appSettings in your configuration file:<appSettings>
<add key=" wcf:ensureUniquePerformanceCounterInstanceNames " value="true" />
</appSettings> After this setting is enabled, WCF will detect if two instance names conflict, and will add an eight-digit hexadecimal hash to the end of one of the names. This lets both instances be created successfully.
Assume that you use WCF as a mid-tier client for a website or web service to communicate with a load-balanced back-end service over HTTP. Additionally, one of the back-end hosts is in a failed state that returns HTTP responses together with a "500" status code.
In this situation, the connection to the failed back-end host persists in the WCF ChannelFactory connection pool because it returns valid HTTP responses and causes a high rate of failed requests. There is no mechanism available to remove a connection to a failed host that could lead to front-end requests failing.
To enable this hotfix, add the following line to appSettings in your configuration file: <appSettings>
<add key="wcf:httpTransportBinding:useUniqueConnectionPoolPerFactory" value="true"/>
</appSettings> After this hotfix is enabled, each instance of ChannelFactory created that uses the HTTP transport will have a separate pool of connections. This lets developers partition their connections into separate pools through instantiating multiple ChannelFactory objects. This allows for dropping a connection to a failed host by closing the ChannelFactory instance associated with the connection to the failed host. When closing a ChannelFactory instance, the connections in the pool are not immediately closed because they are controlled by the pooling behavior of the ServicePointManager class. It is important to set a low default idle time-out if many ChannelFactory objects are being created and closed to prevent a situation in which many idle connections are pending closure.
Assume that you want to support lots of concurrent downloads or uploads to a WCF service that exposes a WebHttpBinding endpoint. Large data content transfers by using streaming mode (instead of buffered mode) will cause the service to experience performance issues regardless of whether a DispatcherSynchronizationBehavior is added.
After you apply this hotfix, WCF will use asynchronous processing that greatly increases the performance of multiple concurrent downloads and uploads.
This hotfix is enabled when the AsynchronousSendEnabled property of the DispatcherSynchronizationBehavior is set to true. To disable it, remove the dispatcherSynchronizationBehavior, or explicitly set the AsynchronousSendEnabled property to false:<system.ServiceModel>
<dispatcherSynchronization asynchronousSendEnabled="false" maxPendingReceives="5" />
</system.ServiceModel> Issue 8
Assume that you apply the September 2014 Russian time zone update (Update 2998527) on your computer. When you have an application that uses the Microsoft .NET Framework and TimeZoneInfo class, the application may calculate time incorrectly. See Update 3012229 for additional details.
This hotfix corrects the base time zone offset look-ups.
Assume that you have a WPF application that opens a window in the main window. When you resize the second window, the application crashes and throws a null pointer exception.