IIS 7.0 - Bartdesmet.net

Download Report

Transcript IIS 7.0 - Bartdesmet.net

Internet Information Services (IIS) 7.0
End-to-End Overview of Microsoft's New Web Application Server
Bart De Smet
MVP, INETA
[email protected]
http://blogs.bartdesmet.net/bart
Satisfy Your Technical Curiosity
Agenda
Where are we with IIS 6.0?
IIS 7.0 pillars dive deep for developers
Security
Extensibility
Configuration
Management
Diagnostics
Lots of demos
Satisfy Your Technical Curiosity
IIS 6.0 Pillars Revisited
Security
Secure by default
Secure by design
Secure in deployment
Reliability
Fault tolerant architecture
Health monitoring
Intelligent queuing
Scalability
Scale-up/scale-out
Kernel-mode caching
Integrated application platform
System
Management
XML-based configuration
Command line administration
Remote administration
Satisfy Your Technical Curiosity
Introducing IIS 7.0 Pillars
Security
Customized, Componentized Web Server
Reduced management of Patches
URLScan built-in Functionality
Extensibility
Brand new Win32 API
Integrated support for ASP.NET Modules
Config
Distributed configuration with delegation
Rich extensibility
Integrated Configuration for Web Platform
System
Management
Innovative, Brand-new IIS Manager
AppCmd.exe: Command line administration
Http & Https Remote administration
Diagnostics
Brand-new State API
Easy-to-setup & Use Failed Request Tracing
IIS & ASP.NET Integrated Diagnostics
Satisfy Your Technical Curiosity
IIS 7.0 - Security
Security
SD³
Componentized web server
40 (!) setup components
Lower the attack surface
Reduction of patch management
URLScan functionality built-in
Satisfy Your Technical Curiosity
Componentization in action
Satisfy Your Technical Curiosity
IIS 7.0 - Extensibility
Extensibility
New APIs
Win32 API
Used by core IIS 7.0 components (modular)
No rabbits in hats 
Managed code API
Integrated pipeline with ASP.NET 2.0
Transfer your knowledge (IHttp* interfaces)
“ISAPI the easy way”
Satisfy Your Technical Curiosity
Once upon a time...
w3wp.exe
aspnet_isapi.dll
handlers
cgi
static
file
ISAPI
extension
IHttpModule Events
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
Extensibility
url map
auth’c req
log
Pre-proc headers
End net session
IHttpHandlers
Trace.axd
PageHandler
Satisfy Your Technical Curiosity
Get together in IIS 7.0
Native Handler
static file
IHttpHandler
ISAPI extension
Native Module
Extensibility
*.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
url auth’z
role mgr
forms auth
authenticate
begin
Satisfy Your Technical Curiosity
Your first IIS 7.0 module
Step 1 – Implementing core functionality
Implement IHttpModule
Compile, deploy and test
Step 2 – Extending & using configuration
Step 3 – Satisfy the IT Pro
Satisfy Your Technical Curiosity
IIS 7.0 - Configuration
Config
The death of the metabase
Distributed XML-based configuration
Integrated IIS + ASP.NET config (web.config)
Allows for delegation
Real xcopy deployment
Strongly typed schema (ApplicationHost.config)
Feel free to extend it! (<configSchema>)
Configuration API
Satisfy Your Technical Curiosity
IIS 7.0 - Configuration
Global server configuration
ApplicationHost.config
Website 1 Root
web.config
Website 2 Root
web.config
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>
Application 1 Root
web.config
Application 2 Root
web.config
<handlers>
<add path="*.aspx"
modules="aspnet"
checkPathInfo="false"
verb="GET,POST" />
</handlers>
Satisfy Your Technical Curiosity
Your first IIS 7.0 module
Step 1 – Implementing core functionality
Step 2 – Extending & using configuration
Add schema (%windir%\system32\inetsrv\config\schema)
Configure schema (ApplicationHost.config)
Apply configuration (appcmd.exe, web.config)
Step 3 – Satisfy the IT Pro
Satisfy Your Technical Curiosity
IIS 7.0 - Management
System
Management
IIS Manager (inetmgr.exe)
Fully extensible (managed code)
Remote administration over HTTP(S)
Satisfy your IT Pro friends
New WMI provider (extensible)
AppCmd.exe cmdline administration
Compatible with IIS 6.0 ADSI and WMI
Windows PowerShell
Satisfy Your Technical Curiosity
Vista-style
breadcrumb
IIS 7.0 - Management
System
Management
.NET
configuration
IIS
configuration
Add modules
here
Satisfy Your Technical Curiosity
Your first IIS 7.0 module
Step 1 – Implementing core functionality
Step 2 – Extending & using configuration
Step 3 – Satisfy the IT Pro
Extend the IIS Manager with a module
WMI support
Satisfy Your Technical Curiosity
IIS 7.0 - Diagnostics
Diagnostics
Real-time information
Queryable by IT Pros and Developers
Processes, App Pools & Doms, requests
Failed Request Tracing
Throughout the IIS 7.0 pipeline
Identify bottlenecks, stuck requests, etc
Custom errors
Detailed localized information
Satisfy Your Technical Curiosity
IIS 7.0 - Diagnostics
FREB
Failed
Request
Event
Buffer
Extensible
Add traces
Control API
Diagnostics
Begin Request
Read Metadata
Authenticate
Authorize
Cached
ISAPI Filter
Determine Handler
Satisfy Your Technical Curiosity
A quick guide to IIS 7.0 diagnostics
Satisfy Your Technical Curiosity
Summary
IIS 7.0 highlights
Security is a top priority
Extensibility to the max!
Improved management
Production debugging with diagnostics
Availability
IIS 7.0 in Windows Vista
IIS 7.0 in “Longhorn” Server Beta 3 Go Live
Satisfy Your Technical Curiosity
Have fun with Internet Information Service 7.0 on Vista and “Longhorn”!
Q&A
Satisfy Your Technical Curiosity
Satisfy Your Technical Curiosity
Satisfy Your Technical Curiosity