Hotfix InformationA 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:Note 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.
PrerequisitesTo apply this hotfix, you must have the .NET Framework 4.5 installed on a computer that is running one of the operating systems:
- Windows 8
- Windows Server 2012
Restart requirementYou must 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 informationThis hotfix package does not replace a previously released hotfix package.
Issues that this hotfix rollup resolves
Common language runtime (CLR) issuesIssue 1
An incorrect value is returned by the DateTime.TryParse method when you use code that resembles the following:
In this example, the incorrect output is 4:00 P.M. on today’s date.
DateTime dt = DateTime.Parse("4/21 5pm");
if (DateTime.TryParse("4/21 5pm", out dt))
After you install the hotfix, it tries to make better attempts at parsing this specific pattern.
To enable the hotfix, add the following code in the application configuration file:
Note No other date or time pattern will benefit from the hotfix.
<EnableAmPmParseAdjustment enabled=”1” />
A .NET Framework 4.5-based application that excessively uses ExecutionContext objects or WCF may result in too many objects being pinned on the Garbage Collector heap. This causes heap fragmentation along with an increase in memory and CPU usage by the Garbage Collector.
This hotfix prevents objects from being pinned in certain cases. To enable the hotfix, use one of the following methods:
- Create the COMPLUS_DisableRetStructPinning environment variable, and set the value of the variable to 1.
- Create a DWORD value at [HKLM\Software\Microsoft\.NETFramework\DisableRetStructPinning] registry subkey, and set the DWORD value to 1.
ASP.NET issuesIssue 1
ASP.NET temporary compilation output that is produced on a computer cannot be reused on another computer even though the two computers have the same version of ASP.NET and identical copies of the website.
This issue occurs because computer-specific information is used as part of the decision to determine whether ASP.NET temporary compilation output is up to date.
To enable the hotfix after you apply it, you must add the following entry to the AppSettings section in the Web.config file for the application. After you do this, ASP.NET does not use the computer-specific information when it determines whether ASP.NET temporary compilation output is up to date. Therefore, the output is portable between computers that have the same configuration.
<add key="aspnet:PortableCompilationOutput" value="true"/>
A race condition in the ASP.NET CacheManager class may cause the Internet Information Services (IIS) worker process to crash if an ASP.NET Web application creates new MemoryCache objects when CacheManager trims the cache.
This issue occurs because the ASP.NET CacheManager class might use multiple threads to read or write to a collection in a way that is not thread-safe. This causes an unhandled exception.
If an ASP.NET Web application processes long-running requests that frequently call the Response.Flush method, there may be an increase in the Web application's memory consumption.
If an ASP.NET Web application uses output cache when the operating system adjusts the clock, it causes exceptions and causes requests to fail. Issue 5
A .NET Framework 4.5-based application that uses the HttpResponse.ClientDisconnectedToken property may experience worker process crashes when clients close their connections to a server.
Windows Communication Foundation (WCF) issuesIssue 1
When you invoke an ASMX Web service that is hosted in IIS, the Web service fails and is intermittently inaccessible until the IIS worker process is recycled.
Note This issue typically occurs when the operating system experiences high "burst loads."
Additionally, a System.InvalidOperationException exception is thrown with the following call stack:
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Note "Method Name" represents the Web service method that you invoke.
This issue occurs because of a race condition that occurs during the resetting and the reading of the configuration in the <webServices> section.
An application that is created by using the .NET Framework 4.5 may crash under a heavy load, and the following exception occurs:
Message: Hashtable insert failed. Load factor too high
Note The exception occurs near the top of the following call stack:
This issue occurs because of a race condition when the .NET Framework serializes dynamic assemblies because of concurrent inserts into a hash table that is not synchronized appropriately.
Windows Presentation Foundation (WPF) issuesIssue 1
A .NET Framework 4.5-based application becomes unresponsive when it scrolls a DataGrid or an ItemsControl.
This issue occurs if the following conditions are true:
- The VirtualizingPanel.IsVirtualizingWhenGrouping property is set to true.
- One or more of the ItemsPresenter or VirtualizingStackPanel classes that participate in the layout of the ItemsControl or its subgroups has a margin that differs from the default setting. Specifically, when the Margin.Top or Margin.Left property (for horizontal scrolling) is not zero.
Assume that you try to print an XML Paper Specification (XPS) document to a Graphics Device Interface (GDI) printer on a non-English operating system. In this situation, some characters are printed incorrectly. These incorrect characters may be displayed too small or too bold, and may be lacking fine details, such as hooks at the end of long strokes. The incorrect characters typically come from a font that contains non-Latin glyphs, for example an Asian font like "MS Mincho."
Windows Form issuesIssue 1
Assume that you have an ActiveX control that registers a type library whose path contains a type library number in order to provide localized content.
For example, the type library path has the following format:
In this scenario, you cannot drop the control on a Windows Form in Microsoft Visual Studio 2012 on an operating system whose active language is set to the localized content's corresponding language.
Assume that you have a .NET Framework 4.5-based Windows Form project that contains a Windows Form named FormA. FormA inherits from another Windows Form named BaseForm, and BaseForm contains a container control (for example, GroupBox, Panel or any other container). You add a customized control to the container in FormA, and change any property of FormA. Then, you save and close the Windows Form designer without rebuilding the project. In this situation, the new customized control is missing when you reopen FormA.
Note This issue occurs when you use Windows Form designer in either Microsoft Visual Studio 2010 or Visual Studio 2012. This issue does not occur if you rebuild the project after you close the Windows Form designer.