An update is available for the .NET Framework 4.5 in Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Server 2008 SP2, and Windows Vista SP2: May 2013

Applies to: .NET Framework 4.5Windows 7 Service Pack 1Windows Server 2008 R2 Service Pack 1


An update for the Microsoft .NET Framework 4.5 is available. For more information about the issues that this update resolves, see the "Issues that this update resolves" section.

More Information

How to obtain this update

Windows Update

This update is available from Windows Update.

Microsoft Download Center

The following file is available for download from the Microsoft Download Center:

Download Download the package now.

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 How to obtain Microsoft support files from online services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.


To apply this update, you must have the .NET Framework 4.5 installed.

Restart requirement

You do not have to restart the computer after you apply this update if the affected files are not being used.

File information

The global version of this update has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Issues that this update resolves

This update resolves the Network Class Library, ASP.NET, Entity Framework, WF and WCF issues that are described in the following Knowledge Base (KB) article:
2750147 An update is available for the .NET Framework 4.5 in Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Server 2008 SP2, and Windows Vista SP2: January 2013

Windows Workflow Foundation (WF)

Issue 1
Consider the following scenario:
  • You have a workflow application that targets the .NET Framework 4.5.
  • You have a code activity, and the code activity has a property of an array of any type.
  • You drag the code activity onto a workflow, and then you save the workflow.
In this scenario, the file cannot be saved, and you receive the following error message:

System.Reflection.TargetException: Object does not match target type.
at System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)
at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at Microsoft.Activities.Presentation.Xaml.XamlObjectReaderWithSequence.GetRealObject()
at Microsoft.Activities.Presentation.Xaml.XamlObjectReaderWithSequence.Read()
at Microsoft.Activities.Presentation.Xaml.ViewStateXamlHelper.ConvertAttachedPropertiesToViewState(XamlObjectReader inputReader, ViewStateIdManager idManager)

Issue 2Consider the following scenario:
  • You have a workflow that uses the InvokeMethod activity.
  • The method that you are invoking has at least one parameter that is of type Nullable<T>.
  • You try to execute the InvokeMethod activity.
In this scenario, an InvalidCastException exception occurs together with the following message:

"Invalid cast from '<type A>' to 'System.Nullable`1[[<type A>]]"

Entity Framework (EF)

Issue 1Consider the following scenario:
  • You have an application that uses Entity Framework and targets the .NET Framework 4. The EDMX in the application is a version in which enum types were not supported, such as is version 2.0 or an earlier version.
  • The application has an entity type in the data layer assembly and a mirror type of the same name in a business layer assembly.
  • The business layer assembly uses enum types. However, the data layer does not. Instead, it uses int types to represent the values.
  • A LINQ to Entities query in the application contains a cast of the int property to an enum type of the business layer assembly where the mirror type resides.
In this scenario, an unexpected exception may occur that indicates "Schema specified is not valid." The application throws this exception in the .NET Framework 4.5 even if the Microsoft .NET Framework 4 is the targeted platform.

Note This exception does not occur when the application runs in the .NET Framework 4.


This update resolves this issue for EDM models version 2.0 and earlier versions. However, the issue will still occur for EDM models that are version 3.0 or a later version, because that is the expected behavior when enums are supported as part of the model.

Issue 2Consider the following scenario:
  • You have an application that uses Entity Framework.
  • The entity model constraints in the application differ from the actual constraints in the database. For example, the entity model may indicate that a field is non-nullable. However, it is actually nullable in the database.
  • The application contains queries that make Entity Framework generate JOIN statements.
  • You upgrade from the .NET Framework 4 to the .NET Framework 4.5.
In this scenario, the application may return results in which the LEFT OUTER JOIN statements are promoted above the INNER JOIN statements.

Issue 3Consider the following scenario:
  • You have an application that uses Entity Framework.
  • The application contains a LINQ to Entities query that includes a JOIN expression, and ends with a SELECT expression that retrieves an anonymous object projection with either one property or at least three properties.
  • The LINQ to Entities query is translated to a provider-specific query at run time.
In this scenario, an ArgumentOutOfRangeException exception occurs.


Queries that combine JOIN expressions and anonymous object projections work only when there are two properties contained by the anonymous type.


Issue 1Assume that you have an ASP.NET Web application that uses output cache. If the application is running when the operating system adjusts the clock, an exception occurs. Additionally, you receive the following error message:

Specified argument was out of the range of valid values. Parameter name: utcDate System.ArgumentOutOfRangeException
at System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate)
at System.Web.HttpCachePolicy.SetLastModified(DateTime date)
at System.Web.UI.Page.InitOutputCache(OutputCacheParameters cacheSettings)

Issue 2Assume that you use a Telerik control in a .NET Framework 4.5-based ASP.NET Web application. The Web application runs under medium trust. In this situation, an exception occurs, and you receive the following error message:

[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
Telerik.Web.UI.RadUploadHttpModule.CaptureWorkerRequest(Object sender, EventArgs e) +0
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

Note The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

Issue 3
Consider the following scenario:
  • You have a Web server that hosts an ASP.NET 4.0 website.
  • You install the .NET Framework 4.5 on the server.
  • You open performance monitor.
In this scenario, seven of the "ASP.NET Apps v4.0.30319(*)" performance counters are numbered instead of using words. For example, the performance counters will resemble the following:

\ASP.NET Apps v4.0.30319(*)\8210
\ASP.NET Apps v4.0.30319(*)\8212
\ASP.NET Apps v4.0.30319(*)\8214
\ASP.NET Apps v4.0.30319(*)\8216
\ASP.NET Apps v4.0.30319(*)\8218
\ASP.NET Apps v4.0.30319(*)\8220
\ASP.NET Apps v4.0.30319(*)\8222

Issue 4
Consider the following scenario:
  • The Server.TransferRequest method is called in a postback event handler in a page to transfer the request to another page.
  • The preserveForm parameter is set to false.
  • The postback contains some form data in the request body.
In this scenario, the form data is forwarded to a child request unexpectedly.

Issue 5
Consider the following scenario:
  • You have a .NET Framework 4.5-based ASP.NET Web application that is running in IIS integrated mode.
  • You set a cookie in an event handler. For example, you set AuthenticateRequest in an HTTP Module.
  • You have some static files under the Web application, and the runAllManagedModulesForAllRequests attribute is set to true.
In this scenario, the cookie is cached by proxies incorrectly if a user requests the static files.

Issue 6When you run the Internet Information Services (IIS) worker process (W3wp.exe) in an integrated pipeline mode, the process may crash or become deadlocked. This issue occurs because of an unhandled NullReferenceException exception in the ASP.NET code.

The deadlock may occur if there is a managed module that listens to the PreSendRequestHeaders or PreSendRequestContent notification. The deadlock occurs because of a race condition in the ASP.NET code that handles the SendResponse notifications that are triggered by the native IIS modules, such as the Microsoft Application Request Routing (ARR) module.

The process may crash when a site is under a heavy load and the site serves requests to asynchronous pages or asynchronous handlers, or when the pipeline has asynchronous modules. This behavior occurs because of the way that the race condition in the ASP.NET code responds when the code finishes asynchronous operations.

Windows Communication Foundation (WCF)

Issue 1Consider the following scenario:
  • You have a .NET Framework 4 WCF service that is configured by using a NetTcpBinding binding.
  • The mexTcpBinding endpoints share a single port and configure the listenBacklog or maxConnections property on the NetTcpBinding class to have a default value of 10.
In this scenario, an AddressAlreadyInUseException exception occurs when the application is moved to the .NET Framework 4.5. Additionally, you receive the following error message:

System.ServiceModel.AddressAlreadyInUseException: There is already a listener on IP endpoint This could happen if there is another application already listening on this endpoint or if you have multiple service endpoints in your service host with the same IP endpoint but with incompatible binding configurations.
---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at System.ServiceModel.Channels.SocketConnectionListener.Listen()

--- End of inner exception stack trace ---
at System.ServiceModel.Channels.SocketConnectionListener.Listen()
at System.ServiceModel.Channels.BufferedConnectionListener.Listen()
at System.ServiceModel.Channels.ExclusiveTcpTransportManager.OnOpen()
at System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
at System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
at System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionOrientedTransportChannelListener.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.TcpChannelListener`2.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)

Issue 2When you use WCF support for WS-Discovery over UDP, you may encounter one or more of the following unexpected situations:
  • There is increased CPU utilization on the server.
  • There is more multicast traffic.
  • There are many SOAP Fault messages being sent over the network in an environment in which the .NET Framework 4.5 is installed.
This issue may occur even if the service is not compiled to target the .NET Framework 4.5, and instead runs in an environment in which the .NET Framework 4.5 is installed.

For more information about this issue and how to work around this issue, click WCF generating high computer usage and network storm.

Issue 3Assume that you have a WCF service that is configured by using the WebHttpBinding binding. You add transport security to the configuration as follows:

<security mode="Transport" />
When you host the WCF service in IIS in the .NET Framework 4.5, an exception occurs. Additionally, you receive an error message that resembles the following:

A binding instance has already been associated to listen URI . If two endpoints want to share the same ListenUri, they must also share the same binding object instance. The two conflicting endpoints were either specified in AddServiceEndpoint() calls, in a config file, or a combination of AddServiceEndpoint() and config.


This issue occurs because of the addition of automatic endpoints in WCF in the .NET Framework 4.5. When you use the WebHttpBinding binding, and the explicitly configured binding and automatic binding are mismatched, the previously mentioned exception occurs.


To work around this issue, insert the following code in the Web.config file:

<appSettings> <add key="wcf:webservicehost:enableautomaticendpointscompatability" value="true"/> </appSettings>

Visual Studio Project

Issue 1When you load a Visual Studio 2010 C++ Unit Test project in Microsoft Visual Studio 2010 on a computer that has the .NET Framework 4.5 installed, the project does not work correctly. Additionally, you encounter the following issues:
  • All P2P references are unresolved in Solution Explorer.
  • When you try to run the tests by using the F5 shortcut, a System.Exception exception occurs, and an error dialog box pops up. This causes all test cases to appear as failed.

Issue 2Assume that you build a RESX file by using MSBuild 4.5 to build a Microsoft Visual Studio 2008 project on a computer. The computer has the Microsoft .NET Framework 3.5 and the .NET Framework 4.5 installed, but does not have Microsoft Visual Studio 2012 installed. In this situation, building the RESX file fails, and MSBuild 4.5 reports a build error at the resource generation step because it cannot start MSBuildTaskHost.exe.