IIS 8.0 ASP.NET Configuration Management
by Won Yoo
|IIS 8.0||IIS management tools have been updated for ASP.net 4.5 in IIS 8.0.|
|IIS 7.5||IIS management tools have not been updated for ASP.net 4.5 in IIS 7.5.|
|IIS 7.0||IIS management tools have not been updated for ASP.net 4.0 in IIS 7.0|
Windows Server 2012 includes .NET Framework 4.5 by default, as well as optional installation of the .NET 3.5 Framework. Developers and administrators frequently need to run both ASP.net 3.5 and ASP.net 4.5 web applications and therefore they also need the ability to manage them both appropriately.
IIS 8.0 supports managing both ASP.NET 3.5 and ASP.NET 4.5 applications using both the graphical IIS Manager tool as well as IIS' command-line management tools.
Both graphical and command line IIS management tools operate in a version-specific manner when reading or writing configuration information for ASP.NET applications. For example, ASP.NET administration modules running in the IIS Server Manager will display configuration options applicable for the specific ASP.NET version used by an application.
Step by Step Instructions
The concepts demonstrated in this walkthrough require a Windows Server 2012 machine with all of the following installed: IIS 8.0, ASP.NET 3.5, and ASP.NET 4.5.
Prior to this walkthrough, readers should have already completed the companion walkthrough: Using ASP.NET 3.5 and ASP.NET 4.5 on IIS 8.0. That document walks readers through installing all three features, as well as sample applications for both versions of ASP.NET.
Workarounds for known bugs:
There are no known bugs for this feature at this time.
Displaying ASP.NET Administration Modules
Start the IIS Manager UI and expand the treeview on the left-hand side of the window so that the "Default Web Site" and its children are both showing:
The right-hand portion of the IIS Manager UI shows the administrative modules available for managing the ASP.NET application highlighted in the treeview. In this case since Default Web Site is selected, and by default this website supports ASP.NET 4.5, the IIS Manager displays 15 different ASP.NET-specific administration modules. The icons shown above in red outlining are the three administration modules that are only available for use with ASP.NET 4.5 applications.
You can see the high-level differences between managing ASP.NET 3.5 and ASP.NET 4.5 application in the IIS Manager below. Since the "example35" application is configured for ASP.NET 3.5, only 12 ASP.NET-specific administration modules are available:
As noted above, the IIS Manager in IIS 8.0 supports three additional administration modules when managing ASP.NET 4.5:
- Providers: This administration module supports centralized management of pluggable persistence providers for ASP.NET 4.5's Membership, Role Manager and Profile feature.
- .NET Users: Interactive UI-based creation, deletion and modification of Membership users for ASP.NET 4.5 applications.
- .NET Roles: UI-based creation/deletion of roles, as well as integration with the ".NET Users" module for adding and removing users to/from roles. As with the previous two administration modules, the ".NET Roles" module is used to manage ASP.NET 4.5 applications
Managing ASP.NET Compilation Settings
Many of the administration modules that exist for both ASP.NET 3.5 and ASP.NET 4.5 expose the same functionality. However as some ASP.NET features evolve over time additional configuration options are added in newer .NET Framework versions. The ASP.NET administration modules in the IIS Manager support this by dynamically changing the options they display depending on the version of the ASP.NET application being managed.
Below is a screenshot of .NET Compilation for ASP.NET 3.5:
And below is the corresponding configuration for ASP.NET 4.5. You will see the configuration options have expanded to include new ASP.NET 4.5 capabilities:
The two new options available in ASP.NET 4.5 applications are:
- Enable JIT Profiling: By default ASP.NET 4.5 will work with the CLR's JIT compilation to enable background compilation of speculative JIT execution paths using additional CPU cores.
- Enable Prefetch: An ASP.NET 4.5 feature available only on Windows Server 2012 that integrates the ASP.NET 4.5 compilation system with the Windows Server 8 Superfetch service. When both the Superfetch service and ASP.NET Prefetch option are enabled, Windows Server 2012 will profile ASP.NET compilation during the startup of web applications in order to dynamically optimize disk performance when loading managed assemblies.
Managing ASP.NET Machine Key Settings
Below is a screenshot of Machine Key for ASP.NET 3.5. The "Validation method" or "Encryption method" dropdowns display the supported hashing and encryption algorithms used by various security features in ASP.NET 3.5: (Note: in the picture below the dropdowns are arranged horizontally so both sets of options can be shown.)
And below is the corresponding configuration for ASP.NET 4.5.
In ASP.NET 4.5 the same set of encryption algorithms are available (AES was available as far back as .NET 2.0). However, in ASP.NET 4.5, the built-in support for hashing algorithms has been expanded to include the SHA-2 family of keyed hash algorithms (HMACSHA256, HMACSHA384, and HMACSHA512).
Managing ASP.NET Pages and Controls
Below is a screenshot of Pages and Controls for ASP.NET 3.5. The administration module will display a subset of commonly used configuration options for ASP.NET 3.5 applications:
And below is the corresponding configuration for ASP.NET 4.5. The options available in the "Behavior" portion have expanded to include new settings for ASP.NET 4.5:
- ClientID Mode: Defaults to the new setting of "Predictable" which results in stable identifiers being emitted for the "id" attribute on rendered HTML elements. This setting can be changed to "AutoID" to mimic the ID generation behavior used in previous releases of ASP.NET.
IIS 8.0 supports running both ASP.NET 3.5 and ASP.NET 4.5 applications on the same machine using different application pools to host each .NET Framework version. To support administering both types of ASP.NET applications, IIS 8.0's management tools (both UI and command-line) also support managing multiple ASP.NET versions. Furthermore the IIS 8.0 Server Manager UI dynamically displays appropriate management options depending on which version of ASP.NET application is being managed.