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.