Update 4.0.3 for Microsoft .NET Framework 4 – Runtime Update

Article ID: 2600211 - View products that this article applies to.
Expand all | Collapse all

On This Page

Introduction

Update 4.0.3 for Microsoft .NET Framework 4 is now available. This update includes a set of new features and fixes some bugs, based on top customer requests and the .NET Framework scenarios.

Notes
  • This update release updates only the runtime files for the Microsoft .NET Framework 4. For more information about the details of this update, see the "More Information" section.
  • This update contains all the runtime changes from the following updates:
    • 2544514 Update 4.0.2 for Microsoft .NET Framework 4 - Runtime Update
    • 2478063 Update 4.0.1 for Microsoft .NET Framework 4 - Runtime Update
    Therefore, this update is a cumulative update. Any application built for the .NET Framework 4.0.1 or the .NET Framework 4.0.2 can run on a computer that has the .NET Framework 4 and the .NET Framework 4.0.3 runtime installed.
  • We do not support any application that this update was used to build on any prerelease version of the .NET Framework 4, such as a Beta. Additionally, we recommend that any such application be upgraded to at least the Microsoft .NET Framework 4 RTM.


Download information

The update is available for download from the following Microsoft Download Center website:
Collapse this imageExpand this image
Download
Download the update 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.

Prerequisites

To install this update, you must have the following software installed:
  • Windows Installer 3.1 or a later version of Windows Installer

    To obtain the latest version of Windows Installer, visit the following Microsoft website:
    Download Windows Installer 4.5 Redistributable
  • The Microsoft .NET Framework 4 or the Microsoft .NET Framework 4 Client Profile
Note The .NET 4.0.3 – Runtime Update is a targetable framework and is built for the .NET Framework 4. This update is not a fully cumulative framework version.

Command-line switches for this update

For more information about the command-line switches for Windows Installer, visit the following Microsoft website:
KB227091 Command-Line Switches for the Microsoft Windows Installer Tool
For more information about Windows Installer, visit the following Microsoft website:
General information about Windows Installer

Restart requirement

You have to restart the computer after you install this update if the files that are being updated are locked or are being used when you install this update.

More information

Features that are introduced by this update

Click here to view or hide detailed information

Feature 1: SustainedLowLatency added to GCLatencyMode

Some applications perform time-sensitive operations throughout the day, during which interruptions from long full blocking garbage collection could be disruptive. For example, applications that need quick response times because of financial market data changes during trading hours. If an application has a large managed heap in this environment, it could become unresponsive for long periods of time if full blocking garbage collection occurs.

To resolve this issue, a new setting called SustainedLowLatency is added to GCLatencyMode. This new setting minimizes the situations in which a full blocking garbage collection can occur. However, full blocking garbage collection may still occur in other situations, such as low memory or if garbage collection is deliberately induced.

Note The SustainedLowLatency setting is applicable only when concurrent garbage collection is enabled. If concurrent garbage collection is not enabled, SustainedLowLatency does not affect garbage collection behavior.

For more information about Latency Modes, visit the following Microsoft website:

General information about Latency Modes

Feature 2: Support running Workflows in partial trust

Workflows that use Windows Workflow Foundation 4 (WF4) can run only in fully trusted application domains. This update enables WF to run in partially trusted environments. The scope of the change is enabling the core workflow runtime (execution model, activity and data model, tracking, and serialization) to run in partial trust. To enable this change, some WF assemblies are made conditional AllowPartiallyTrustedCallersAttribute (APTCA).

Note SqlWorkflowInstanceStore and Visual Basic expression are not supported by this change. Therefore, they are not available in partial trust.

Feature 3: Enable WF messaging activities across multiple hosts

WF4 messaging activities (Send, Receive, ReceiveReply, SendReply, and so on) use WCF to send and receive messages. This update introduces a new WF extension that is used by these activities to send or receive messages (or both). The extension has to be provided by the host. If the extension is not present, the WF4 behavior and execution is preserved (no changes to current code path). If the extension is present, the activities call the methods in the extension.

The new extension has methods for each of the steps that are involved in different messaging patterns. The host authors can implement those methods to implement the messaging semantics that they want to use with the existing WF4 programing model.

Feature 4: XLinq and DataAnnotations added to .NET Framework 4 Portable Class Libraries

Support for System.Xml.Linq.dll and System.ComponentModel.DataAnnotations.dll has been added to the Portable Class Library project when targeting .NET Framework 4.0.3. For more information about how to install Portable Class Library support, visit the Portable Class Library article on MSDN.

Feature 5: Support for Correlated Connection ID in SqlClient

In Microsoft SQL Server 2012, capability to correlate a connection ID between the client and the server is added. With this update SqlClient will send the connection ID information so that it can be logged on the server side. Additionally, the following capabilities are added to SqlClient to provide ways to retrieve the connection ID on the client side if it is available:
  • ConnectionId property on SqlConnection
  • ConnectionId property on SqlException
  • SqlException.ToString will include the connection ID
General information about SQL Server Extended Events and Accessing ClientConnectionID through SqlClient for .NET Framework.

Issues that this update resolves

Click here to view or hide detailed information


Issue 1: Cannot set the WWW-Authenticate HTTP Response header in self-hosted WCF service scenarios

If you have a self-hosted WCF service, you could not send a www-Authenticate HTTP header in the response message. This is required for many custom authentication scenarios, such as enabling OAuth. This limitation was removed.

Issue 2: Self-hosted BasicHttp service that uses https enabled fails in partial trust

If you have a self-hosted WCF service that uses BasicHttpBinding with security mode Transport and ClientCredentialType=None or Certificate, you could not run it in partial trust. The client request fails, and you receive the following exception:

System.Security.SecurityException: Request failed.
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(RuntimeAssembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandleInternal rmh, SecurityAction action, Object demand, IPermission permThatFailed)
This issue is resolved.

Issue 3: WCF: Identical binding extension elements in machine.config and app.config throws an exception

If identical (names and types) extension elements exist in machine.config and app.config, a ConfigurationErrorsException exception is thrown, and you receive the following error message:
System.Configuration.ConfigurationErrorsException was unhandled
Message=An extension of name 'xyz' already appears in extension collection. Extension names must be unique.
This limitation was removed.

Issue 4

Consider the following scenario:
  • You run a client application to access a Windows Communication Foundation (WCF) duplex service that uses the Microsoft .NET Framework 4.
  • The application calls the OnClose event of a channel on the WCF service.
  • This channel is then ended in another event thread.
In this scenario, the application crashes and you receive one of the following exception messages:
Exception 1
Exception: System.Runtime.CallbackException.

Message: A user callback threw an exception.
Exception 2
Inner exception: System.ObjectDisposedException.

Message: Cannot access a disposed object.

Issue 5

Consider the following scenario:
  • You have some nonstandard bindings that are defined for the following services:
    • Net.Pipe Listener
    • Net.Tcp Listener
    • Net.Tcp Port Sharing Service
    • Net.Msmq Listner Adapter
  • You install a .NET Framework 4.0 Extended Profile update
In this scenario, the Internet Information Services (IIS) configuration is changed to the default value of port 808 instead of your custom port.

Issue 6
When you try to access a hosted webpage created for .NET 4.0.1 or .NET 4.0.2 (that is, the targetFramework property is set to one of these targets), you receive an error message that resembles the following:
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: The 'targetFramework' attribute in the <compilation> element of the Web.config file is used only to target version 4.0 and later of the .NET Framework (for example, '<compilation targetFramework="4.0">'). The 'targetFramework' attribute currently references a version that is later than the installed version of the .NET Framework. Specify a valid target version of the .NET Framework, or install the required version of the .NET Framework.

Source Error:
Line 2: <configuration>
Line 3: <system.web>
Line 4: <compilation debug="false" targetFramework=".NETFramework, version=v4.0.3" />
Line 5: </system.web>Line 6: </configuration>
This issue is now resolved.

Issue 7

Consider the following scenario:
  • A process is running managed code against the Microsoft .NET Framework 4 common language runtime (CLR).
  • At the same time, an update is installed that services Microsoft .NET Framework 4 assemblies.
In this scenario, the process that is running managed code against the Microsoft .NET Framework 4 CLR may end unexpectedly. This issue occurs because of a condition in which servicing of Microsoft .NET Framework 4.0 assemblies could lead to loaded modules, in a process that is running managed code against the Microsoft .NET Framework 4.0 CLR, to enter an inconsistent state. The process ends unexpectedly.

Issue 8

AlwaysOn is the new high-availability solution that is part of SQL Server Code Named "Denali." It enables failure recovery scenarios between multiple sites without specialized hardware. We have introduced a fix that improves the failover reconnection performance in multi-site clusters that are not using a stretch VLAN.

Issue 9

Failover reconnect performance against a SQL Server Denali AlwaysOn Availability Group is not in parity with failover reconnect performance to a SQL Server 2008 R2 database by using DB Mirroring. This issue is resolved, improving the SQL Server Code Named "Denali" AlwaysOn failover reconnection performance, bringing it in parity with traditional Database Mirroring failover.

Issue 10

Consider the following scenario:
  • You host a Microsoft .NET Framework 4-based Windows Communication Foundation (WCF) service. The WCF service uses the TCP protocol.
  • Many client web applications use the WCF service.
  • The service tries to clean up some connections.
In this scenario, the WCF service may encounter the following exceptions and then crash:
  • System.Net.InternalException - An error occurred within Windows Communication Foundation. Applications should not attempt to handle.
  • System.NullReferenceExcption- Object reference not set to an instance of an object.

Issue 11:
Consider the following scenario:
  • A client application opens and closes TCP connections to a Windows Communication Foundation (WCF) service quickly.
  • The way objects are allocated to the Large Object Heap (LOH) for WCF services this may result in memory fragmentation in the generation 0 heap. This can adversely affect the performance of the WCF service.

In this scenario, the performance of the WCF service degrades.

Issue 12:
Consider the following scenario:
  • You use the .NET Framework Data Provider for SQL Server (SqlClient) to connect to an instance of Microsoft SQL Server.
  • Database mirroring is turned on.
  • The primary server is available (it has not failed over to the failover partner), but it is under load and does not respond quickly.
  • You open a new connection to the server.

In this scenario, the connection requests may time out prematurely and a SqlException exception is thrown.


Issue 13:
Consider the following scenario:
  • You use the .NET Framework Data Provider for SQL Server (SqlClient) to connect to an instance of Microsoft SQL Azure or of Microsoft SQL Server.
  • The Encryption option is turned on.
  • Connection request fails during prelogin.

In this scenario, memory leak occurs. Additionally, the GCHandle object is leaked.


Issue 14:
Consider the following scenario:
  • You use the .NET Framework Data Provider for SQL Server (SqlClient) to connect to an instance of Microsoft SQL Azure or of Microsoft SQL Server.
  • Data is retrieved by using the SqlDataReader.
  • You receive an ENV_CHANGE token from the server when the data is retrieved.

In this scenario, no result set or only a partial result set is retrieved even though there is more data available.

Issue 15:

Consider the following scenario:
  • You have a Windows 7 or Windows Server 2008 R2-based computer that is connected to a touch screen.
  • You run a Windows Presentation Foundation (WPF) application in full-screen mode.
  • You run another application in full-screen mode. This application runs at a lower screen resolution than the WPF application.
  • You exit the application, and you switch back to the running WPF application.

In this scenario, touch input is mapped incorrectly on the WPF application.


Issue 16:

With this update, we have made the System.Deployment platform check more flexible for ClickOnce applications.
For guidance about how to set the runtime version in the ClickOnce manifest, visit the following MSDN website:

Guidance on setting the runtime version in the ClickOnce manifest

Visual Studio 2010 support

To use any new feature installed by this update, install the following update, and then develop applications in Microsoft Visual Studio 2010 Service Pack 1 (SP1):
2600214 Visual Studio 2010 SP1 – Design-time Update for Microsoft .NET Framework 4.0.3


Known issues with this update

Click here to view or hide detailed information


Issue 1
Symptoms
Consider the following scenario:
  • You create a .NET 4.0.3 application and deploy it on a computer that has .NET Framework 4 and the 4.0.3 Runtime Update installed.
  • You install the Visual Studio 11 Developer Preview or .NET Framework 4.5 Developer Preview on the same computer.
  • You try to run the application.
In this scenario, you receive the following error message:
This application requires one of the following versions of the .NET Framework:

.NETFramework, Version=v4.0.3,Profile=Client

Do you want to install this .NET Framework version now?

Cause
Because .NET 4.0.3 for .NET 4 was created after Visual Studio 11 Developer Preview was released, it cannot be used together with .NET 4.5 Developer Preview.

Resolution
To resolve this issue, uninstall Visual Studio 11 Developer Preview and .NET 4.5 Developer Preview to make your applications work. Only the next major release of the .NET Framework 4.5 will support .NET 4.0.3.

Update replacement information

This update replaces following update. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
  • 2478063 Update 4.0.1 for Microsoft .NET Framework 4 - Runtime Update
  • 2544514 Update 4.0.2 for Microsoft .NET Framework 4 - Runtime Update
  • 2605597 FIX: Time-out error when a mirrored database connection is created by the .NET Framework data provider for SQLClient
  • 2645081 FIX: A GCHandle leak occurs when you use the .NET Framework data provider for SQL Server to connect to SQL Azure
  • 2645084 FIX: Truncated result is returned without any error message if a connection that contains a pending transaction is disconnected by SQL Server

File information

Click here to view or hide detailed information
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Properties

Article ID: 2600211 - Last Review: August 3, 2012 - Revision: 5.0
Applies to
  • Microsoft .NET Framework 4
Keywords: 
kbqfe atdownload kbexpertiseadvanced kbsurveynew kbfix kbcip KB2600211

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com