The .NET Framework allows you to install multiple versions of the common language runtime on the same computer. By default, when the .NET Framework is installed on a computer where the runtime is already installed, all ASP.NET applications are automatically updated to use that version of the .NET Framework. The only exceptions are applications that are bound to an incompatible version of the runtime or to a later version of the runtime. (Compatibility is typically determined by the .NET Framework version number. Major version differences are usually incompatible, whereas minor updates and build number version differences are compatible.) Although later versions of the .NET Framework are designed to be backward compatible, you might want to configure an ASP.NET application to use a specific version of the runtime.
Script Maps for ASP.NET Applications
When multiple versions of the .NET Framework are installed on the same computer, each installation has its own version of the ASP.NET ISAPI extension (Aspnet_isapi.dll). The ASP.NET ISAPI extension determines which version of the .NET Framework an application will use. You can configure an ASP.NET application to use any ASP.NET ISAPI extension. To specify which ASP.NET ISAPI extension to use for an ASP.NET application, a script map (sometimes referred to as an application map) is registered with Internet Information Services (IIS) for the application.
A script map associates a file name extension (such as .aspx) and HTTP verb (such as GET and POST) with the appropriate ISAPI extension. For example, when IIS receives a request for an .aspx file, the application's script map directs IIS to forward the .aspx file to the appropriate version of the ASP.NET ISAPI extension. The script map for each ASP.NET application is normally set in the Internet Information Services management console and can be applied directly to an application, or it can be inherited from a parent application. By default, when the .NET Framework is installed, the script maps for all existing ASP.NET applications are automatically updated to use new ASP.NET ISAPI extension, unless the application uses a later version or an incompatible version.
To make it easier to reconfigure the script map for an ASP.NET application, each installation of the .NET Framework has its own version of the ASP.NET IIS Registration tool (Aspnet_regiis.exe). By default, this tool is installed in the following directory:
You can use this tool to map an ASP.NET application to the version of the ASP.NET ISAPI extension that matches the tool.
Because Aspnet_regiis.exe is associated with a specific version of the .NET Framework, you must use the appropriate version of Aspnet_regiis.exe to reconfigure the script map for an ASP.NET application. The Aspnet_regiis.exe tool reconfigures the script map of an ASP.NET application to only the version of the ASP.NET ISAPI extension that matches the tool.
The tool can also be used to display the status of all installed versions of ASP.NET, register the associated version of ASP.NET, create client-script directories, and perform other configuration operations.
For more information about script maps and IIS configuration, see
ASP.NET Performance Counters
Performance counters enable you to monitor the operation of ASP.NET from the Windows Performance console. Each version of the .NET Framework installs a separate set of performance counter objects to monitor ASP.NET applications and to monitor ASP.NET as a whole. These objects use the naming conventions "ASP.NET Apps v.X.X.XXXX.X" and "ASP.NET v.X.X.XXXX.X", respectively, where v.X.X.XXXX.X denotes the ASP.NET version.
In addition, the .NET Framework also installs ASP.NET system and ASP.NET application performance counters that apply to any installed versions of ASP.NET. Although these counters are valid for all versions of ASP.NET, they always correspond to the latest installed version. If the latest version of ASP.NET is uninstalled, these counters are automatically re-associated with the latest remaining version of ASP.NET.
ASP.NET State Service
ASP.NET state service can be used to manage session state on a computer. All versions of ASP.NET that are installed on the same computer share the state service that is installed with the latest version of ASP.NET. This version is registered with a service name of aspnet_state. Therefore, when this version of ASP.NET is uninstalled, the latest remaining version of the service on the computer is then registered and used in its place. For more information on the ASP.NET state service, see Session-State Modes.
ASP.NET SQL State Server
ASP.NET SQL state server is used to manage session state in SQL on a computer. All versions of ASP.NET that are installed on the same computer share the SQL state server that is installed with the latest version of ASP.NET. When this version of ASP.NET is uninstalled, the latest remaining version on the computer is then registered and used in its place. For more information on the ASP.NET SQL state server, see Session-State Modes.