Issues that this hotfix rollup fixes
Issue 1This 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 2This hotfix rollup fixes an issue with touch-enabled Windows Presentation Foundations (WPF) applications that are running in the same process but targeting two different .NET Framework versions. An example of this issue is two VSTO Office Add-ins written in WPF but targeted to different side-by-side .NET Frameworks. Users in this scenario could see strange touch behavior and/or crashes at various points during program execution.
The fix makes sure that proper DLLs are loaded and accessed in these scenarios, stopping any issues with touch behavior or program crashes.
Note If you use the .NET Framework 3.5 Service Pack 2 on your computer, install the corresponding fix for your version to fix this issue.
Issue 3
If you have an ASP.NET website that’s 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 4Assume 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)