Peterson's Ponderings

Technical findings, ideas, thoughts and news directly from me.
in

May 2007 - Posts

IIS 7.0 Features Summary

Last month's DevCares topic was focused on the new features of IIS 7.0.  For those of you that missed the Chicago area presentations I've composed a short summary of what I felt were the most interesting items for developers. 

- IIS 7 is currently only available on Windows Vista.  It will be released with Longhorn once the product ships and you can use it on the Longhorn CTP currently available.  IIS 7 cannot be installed separately on Windows 2003 server as the architecture is built into benefits of OS changes available in the new OS versions.  The only difference between the version of IIS 7 running on Vista and what will be available in Longhorn is that the Vista version has a 10 simultaneous connection limit (it can only accept 10 concurrent requests at any one time).

- Componentized Architecture - IIS 7 is built as a set of configurable component blocks.  This means you can 'build' the type of web server you want to run on your server by selecting only the component blocks with features you are going to use.  All the other blocks can be disregarded and as such are not even loaded into memory.  This gives you a stream lined service without loading unused dlls and minimizes the surface area of attack since you only have specific blocks resident on the server.  Everything is a block, you can essential strip away all the blocks and the IIS service becomes a dumb socket listener that receives connections but does nothing with them (not that you'd ever have a use for that in a real environment, but the building block concept is powerful).

- Merged pipeline allows a request to first go through native and managed pipeline handlers before being handed off to the isapi extension for page processing.  This means you can now have all of your pages take advantage of ASP.NET 2.0 features such as forms authentication.  Want to protect your images or classic ASP pages with the same security scheme used in your ASP.NET forms app?  Well now you can as the merged pipeline will process the forms authentication managed handler before it directs the page request to any of the handlers so all requests regardless of file extension must pass forms auth.

- New Win32 API makes it easier to build your own component blocks to plug into the merged IIS pipeline or custom ISAP extensions.  Extensions can now be made in managed code using an object oriented Win32 API, no more struggling with native C++ and antiquated Win32 calls.  All the features the blocks built by Microsoft take advantage of are also exposed to your custom blocks by the API.

- IIS and ASP.NET configuration is now all done in one single config file.  A server level config file can host the default settings for all sites on the server and are inherited to all sites and applications.  A site or application can override inherited settings within their own web.config file if the setting isn't locked down at the server level.  The server administrator can decide which settings are locked down and which aren't so your server features can be customized according to your corporate standards.

- Metabase is gone!

- New IIS Manager GUI provides ASP.Net and IIS configuration abilities.  A command line tool (appcmd.exe) exists as well and enables the same capabilities as the UI.

- Real time process information is available through the GUI or command line tool.  You can now see exactly what app pools are running, how many AppDomains are loaded and what requests are being executed in each pool.  Request information shows the page name, client connection information, and current execution time.  No more having to guess what's going on and what requests are in progress by watching perfmon stats and thread counts in task manager!

- New Failed Request Tracing gives detailed IIS pipeline trace information to help troubleshoot errors and performance in your pipeline.

This is a significant IIS release as there have been a lot of core changes while still making it simple for you to copy an IIS 6 site and have it just work under IIS 7!  For more detailed information visit the new dedicated IIS site at http://www.IIS.net.