Sign in with Microsoft
Sign in or create an account.
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

This article describes the hotfix rollup 3088957 that's available for the Microsoft .NET Framework 4.6. For more information about the issues that the hotfix rollup fixes, see the "Issues that this hotfix rollup fixes" section.


A supported hotfix is now available from Microsoft. However, it's intended to correct only the problem that this article describes. Apply it only to systems that are experiencing this specific problem.

To fix this problem, contact Microsoft Customer Support Services to get the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft website: 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 fix your problem. The usual support costs will apply to additional support questions and issues that don't qualify for the specific update in question.

More Information


To apply this hotfix, you must have the .NET Framework 4.6 installed.

Restart requirement

You 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 information

This hotfix package doesn't replace a previously released hotfix package.

Issues that this hotfix rollup fixes

Issue 1

If you have an ASP.NET website running on a 32-bit version of the .NET Framework 4.6 or AMD64 version of the .NET Framework 4.6 platform with RyuJit disabled, you may experience w3wp crash because of unhandled ThreadAbortException. ​

When the crash happens, you can see the following log in Windows event log:

An unhandled exception occurred and the process was terminated.
Application ID: [ApplicationID]
Process ID: [ProcessID]
Exception: System.Threading.ThreadAbortException
Message: Thread was being aborted.
StackTrace: at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

Issue 2

Assume that you have a WCF client connecting to the WCF service by using WCF Routing Service. If the end service raises any unexpected exception that's not a type of FaultException or the configure changes, WCF Routing Service may not route subsequent requests to the end service.

When this issue occurs, you receive the following exception:

System.ServiceModel.ProtocolException: This channel can no longer be used to send messages as the output session was auto-closed due to a server-initiated shutdown. Either disable auto-close by setting the DispatchRuntime.AutomaticInputSessionShutdown to false, or consider modifying the shutdown protocol with the remote server.

Stack trace information:

at System.ServiceModel.Channels.ServiceChannel.PrepareCall(ProxyOperationRuntime operation, Boolean oneway, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin()
at System.ServiceModel.Channels.ServiceChannel.BeginCall(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, TimeSpan timeout, AsyncCallback callback, Object asyncState)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeBeginService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(Message message, AsyncCallback callback, Object state)
at System.ServiceModel.Routing.ClientFactory.RequestReplyClient.OnBeginOperation(Message message, AsyncCallback callback, Object state)
at System.ServiceModel.Routing.ClientFactory.RoutingClientBase`1.OperationAsyncResult.CallOperation()
at System.ServiceModel.Routing.ClientFactory.RoutingClientBase`1.OperationAsyncResult..ctor(RoutingClientBase`1 parent, Message requestMessage, Transaction transaction, AsyncCallback callback, Object state)
at System.ServiceModel.Routing.ClientFactory.RoutingClientBase`1.BeginOperation(Message message, Transaction transaction, AsyncCallback callback, Object state)
at System.ServiceModel.Routing.ProcessRequestAsyncResult`1.StartProcessing()
at System.ServiceModel.Routing.ProcessRequestAsyncResult`1..ctor(RoutingService service, Message message, AsyncCallback callback, Object state)
at System.ServiceModel.Routing.RoutingService.BeginProcessRequest[TContract](Message message, AsyncCallback callback, Object state)
at System.ServiceModel.Routing.RoutingService.System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(Message message, AsyncCallback callback, Object state)
at AsyncInvokeBeginBeginProcessRequest(Object , Object[] , AsyncCallback , Object )
at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeBegin(Object instance, Object[] inputs, AsyncCallback callback, Object state)
Issue 3

This is an update to support the new Georgian Lari symbol. The country of Georgia has introduced a new currency symbol for the Lari, but the currency name isn't changed. The new currency symbol has also been added to the Unicode standard. This update makes sure that the correct currency symbol is displayed by the .NET Framework based on system locale settings.

Issue 4

If a Gen2 collection occurs during Parallel.ForEach calls, you may experience long hangs after you install Visual Studio 2015 or the .NET Framework 4.6 without Visual Studio.


This update updates the Garbage Collector by resolving system freezes that are caused by this issue.

Issue 5

After you install the .NET Framework 4.6, the Date​Time.Parse and Date.TryParse ​​methods don’t work correctly. This issue may occur with the following culture settings:

  • fi-FI

  • nb-NO

  • nb-SJ

  • sr-Cyrl-XK

  • sr-Latn-ME

  • sr-Latn-RS

  • sr-Latn-XK​


This update enables DateTime.Parse and Date.TryParse to function correctly in cultures that are using the same date and time separator.

Issue 6

After you install the .NET Framework 4.6, the .NET Framework 4.6 uses a new 64-bit compiler that's called RyuJIT. In some cases, the new compiler generates incorrect code that causes unpredictable behavior or crashes. 


This update fixes many issues in the RyuJIT compiler. If the application still behaves unpredictably after the installation of this update, see additional detailed troubleshooting guidance.


If it's determined that RyuJIT may be involved in your issue by following the troubleshooting steps at the link, please log the issue at Include as much detail as possible in the report, and also code to reproduce the issue.  

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

Was this information helpful?

What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!