Transcript Slide 1
IIS 7.0: End-to-End Overview Wade A. Hilmo Development Lead IIS Product Unit Microsoft Corporation IIS7 Overview: Agenda Core Server Highly Componentized Extensibility Replace IIS Features or Add Your Own Configuration & Delegation Efficient, Extensible & Delegatable Administration and User Interface Organized, Extensible Diagnostics Powerful Utilities for Locating Trouble Spots IIS 7.0 Core Server A Look At Existing Versions Scripts PrintersDirectory FrontPage Remote Desktop Virtual 2000Directory Srv ActiveX Ext A W F d W T m W P S n e Tr o v o c e Common Files C ConfigurationAPI NetFxEnvironment ProcessModel RequestFilteringModule UrlAuthorizationModule IPSecurityModule AnonymousAuthModule CertificateAuthModule WindowsAuthModule DigestAuthModule TPManagement TPServer W oSBasicAuthModule ie m nc m du o or n ManagementService ManagementScripting ManagementConsole HTTPDynamicCompression HTTPStaticCompression w H i s Tt Py T r P o W c e e mb Ss s e rA vc t e ri v C a o t m i p o o n n S e e n tr v LoggingLibraries ODBCLogging HTTPTracingModule RequestMonitorModule CustomLoggingModule HttpLoggingModule H e a l t h a n d D i a g n o s t i c s IIS 7.0’s Componentized Strategy Metabase WMICompatibility LegacyScripts LegacySnap-in IIS 7.0 Componentization Slim & Efficient Install only the components you need Reduce attack surface to minimum Five times more granular than existing IIS versions Servicing and patching on a per component basis If you don’t install it, you won’t need to patch it Customizing the Web Server Core Wade A. Hilmo Development Lead IIS Product Unit IIS 7.0 Extensibility Today’s “Request Pipeline” w3wp.exe aspnet_isapi.dll handlers cgi static file Isapi exts url map determine handler begin req logging auth’c req custom errors auth’z req compression resolve cache end req authentication handler map update req cache handler exec rel req state ISAPI Filter Notifications w3svc IHttpModule Events url map auth’c req log IHttpHandlers Pre-proc headers End net session Trace.axd http.sys PageHandler The New Merged IIS7 Pipeline Native Handler static file IHttpHandler isapi ext Native Module *.aspx end trace.axd IHttpModule log update cache native modules release state managed modules execute handler pre-execute handler was basic auth acquire state digest auth map handler resolve cache windows auth authorize authenticate begin http.sys url auth’z role mgr forms auth IIS 7.0 Extensibility Modular server for customizable footprint All modules built on public APIs - add, remove, or replace Native (C/C++) and Managed (C#, VB.NET) extensibility Deep Integration across IIS & ASP.NET Configuration & Delegation Configuration Today in IIS 6 Metabase Single, centralized configuration store Accessed at runtime via IISAdmin service Delegation not well supported Not strongly schematized Difficult to extend IIS 6 Configuration Sample <!-- Metabase.xml file --> <IIsWebService Location ="/LM/W3SVC" ScriptMaps=".asp,D:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE .idc,D:\WINDOWS\system32\inetsrv\httpodbc.dll,5,GET,POST .shtml,D:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST” … (other properties here) > </IIsWebService> <IIsWebVirtualDir Location ="/LM/W3SVC/1/ROOT“ ScriptMaps=".asp,D:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE .idc,D:\WINDOWS\system32\inetsrv\httpodbc.dll,5,GET,POST .shtml,D:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST .aspx,D:\WINDOWS\Microsoft.NET\Framework\v2.0.x86chk\aspnet_isapi .dll,1,GET,HEAD,POST,DEBUG” … (other properties here) > </IIsWebVirtualDir> IIS7 Configuration No more metabase Distributed configuration files Decentralized – worker processes read config files directly Supports delegation Clean, well schematized configuration files Rich extensibility IIS7 Configuration Sample <!– ApplicationHost.config --> <handlers> <add path=“*.asp" modules=“Asp“ checkPathInfo=“true“ verb="GET,HEAD,POST" /> <add path=“*.stm" modules=“ServerSideIncludeModule” checkPathInfo=“true" verb="GET,POST" /> <add path=“*.exe" modules=“CGIModule“ checkPathInfo=“true" verb="GET,POST" /> </handlers> <!-- Web.Config in Application Root --> <handlers> <add path=“*.aspx“ modules=“aspnet” checkPathInfo="false” verb="GET,POST" /> <handlers> Configuration Delegation Wade A. Hilmo Development Lead IIS Product Unit IIS 7.0’s Brand New User Interface Administration IIS Previous User Interface Easy Navigation Limited Application Concept Tabs, tabs, and more tabs IIS7 Administration Experience Nice Tree View Category sorting for easy to find features IIS7 Administration Tools Delegated management of sites and applications Remote management over HTTP Support for Windows and non-Windows credentials Simple, task-based workflow, consistent across platform Complete extensibility IIS 7.0 Health and Diagnostics Features IIS7 Diagnostics Detailed custom errors Real-time server state information Detailed event trace events across web platform stack Automatic event trace logging on error conditions Extensibility for adding traces to application code Why is this request Failing? Wade A. Hilmo Development Lead IIS Product Unit Session Summary Powerful, slimmed-down Web Processing Engine Takes ‘secure by default’ to a whole new level Enables distributed config scenarios & XCopy deployment Tremendous extensibility, flexibility and customization Rich diagnostics and troubleshooting support © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.