Reviewing How Applications Run in Each Application Isolation Mode

Applies To: Windows Server 2003, Windows Server 2003 with SP1

When running IIS 6.0 in worker process isolation mode, ASP.NET applications use the W3wp.exe worker process and application pool properties, which are stored in the IIS 6.0 metabase. When you configure IIS 6.0 to run in IIS 5.0 isolation mode, ASP.NET applications use the ASP.NET request processing model, Aspnet_wp.exe, and configuration settings. These configuration settings are stored in the Machine.config file.

Behavior of ASP.NET Applications That Are Running in IIS 5.0 Isolation Mode

By default, ASP.NET applications are configured to run in worker process isolation mode. If your application can only run in the ASP.NET process model, you must configure the server to run in IIS 5.0 isolation mode to be able to run the application on IIS 6.0. When IIS 6.0 is configured to run in IIS 5.0 isolation mode, ASP.NET applications behave as follows:

  • The applications run within Aspnet_wp.exe.

    Aspnet_wp.exe is a request processing model that is similar to worker process isolation mode, and it contains worker process management capabilities similar to the WWW service in IIS 6.0. Aspnet_wp.exe includes most of the IIS application management features, such as recycling, health detection, and processor affinity. Processor affinity is the ability to force worker processes to run on specific microprocessors.

  • The configuration settings are stored in the Machine.config file.

    When IIS 6.0 is running in IIS 5.0 isolation mode, the configuration settings for ASP.NET applications are managed by modifying the Machine.config file, not the IIS metabase file. Because there is no administrative console for the Machine.config settings, any configuration settings for ASP.NET must be made directly to the Machine.config file.

    Important

    In IIS 5.0 isolation mode, the .NET Framework ignores any configuration changes made in the IIS metabase. Administrative consoles, such as IIS Manager, make changes to the IIS 6.0 metabase, but those changes are not read by the .NET Framework.

When IIS 6.0 is configured to run in IIS 5.0 isolation mode, your ASP.NET applications should behave as they did in IIS 5.0. However, incompatibilities can result when running version 1.1 of the .NET Framework. For more information about configuring IIS to support ASP.NET applications that use version 1.0 of the .NET Framework, see Overview of Deploying ASP.NET Applications in IIS 6.0.

Behavior of ASP.NET Applications That Are Running in Worker Process Isolation Mode

When IIS 6.0 is configured to run in worker process isolation mode, ASP.NET applications behave as follows:

  • The process model within the ASP.NET ISAPI extension is disabled, and ASP.NET applications run using worker process isolation mode in IIS 6.0.

    In this configuration, the ASP.NET application runs in worker process isolation mode like any other application, such as an ASP application. In addition, IIS 6.0 provides all of the management features such as recycling, health detection, and processor affinity.

  • The ASP.NET ISAPI extension is configured by a combination of configuration settings that are stored in the IIS metabase (MetaBase.xml) and configuration settings in the Machine.config file.

    When IIS 6.0 is running in worker process isolation mode, the majority of the application configuration settings are stored in the IIS metabase. You can adjust these settings directly in MetaBase.xml or from administrative consoles, such as IIS Manager, or scripts.

    However, if there are existing settings in the <processModel> section of the Machine.config file, those configuration settings must be converted to the appropriate application pool settings when the Web server is configured to run in worker process isolation mode Additionally, there are other configuration settings that are still modified in the Machine.config file, regardless of the application isolation mode. For more information about converting Machine.config attributes to worker process isolation mode settings, see Migrating Machine.config Attributes to IIS 6.0 Metabase Property Settings.

When IIS 6.0 is configured in worker process isolation mode, your ASP.NET applications should behave as they did on IIS 5.0. Before deploying your ASP.NET applications on your production Web servers, test compatibility with IIS 6.0 running in worker process isolation mode and version 1.1 of the .NET Framework. For more information about determining application compatibility with IIS 6.0 running in worker process isolation mode, see Determining Application Compatibility with Worker Process Isolation Mode. For more information about determining compatibility with version 1.1 of the .NET Framework see Determining Application Compatibility with the .NET Framework.

If you determine that your ASP.NET applications are incompatible with worker process isolation mode, reconfigure IIS to run in IIS 5.0 isolation mode. If your ASP.NET applications are incompatible with version 1.1 of the .NET Framework, configure IIS to use version 1.0 of the .NET Framework with your ASP.NET application.

For more information about configuring IIS 6.0 to run in IIS 5.0 isolation mode, see Configure Application Isolation Modes. For more information about configuring IIS to use version 1.0 of the .NET Framework with your ASP.NET application, see Overview of Deploying ASP.NET Applications in IIS 6.0.