satisfy your technical curiosity internet information services (iis) 7.0 end-to-end overview of...
Post on 15-Jan-2016
216 views
TRANSCRIPT
Satisfy Your Technical Curiosity
Internet Information Services (IIS) 7.0End-to-End Overview of Microsoft's New Web Application Server
Bart De SmetMVP, INETA
[email protected]://blogs.bartdesmet.net/bart
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
Agenda
Where are we with IIS 6.0?IIS 7.0 pillars dive deep for developers
SecurityExtensibilityConfigurationManagementDiagnostics
Lots of demos
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 6.0 Pillars Revisited
Scale-up/scale-outKernel-mode cachingIntegrated application platform
Scalability
XML-based configurationCommand line administrationRemote administration
SystemManagement
Fault tolerant architectureHealth monitoringIntelligent queuing
Reliability
Secure by defaultSecure by designSecure in deployment
Security
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
Introducing IIS 7.0 Pillars
Distributed configuration with delegationRich extensibilityIntegrated Configuration for Web Platform
Config
Innovative, Brand-new IIS ManagerAppCmd.exe: Command line administrationHttp & Https Remote administration
SystemManagement
Brand new Win32 APIIntegrated support for ASP.NET ModulesExtensibility
Customized, Componentized Web ServerReduced management of PatchesURLScan built-in Functionality
Security
Brand-new State APIEasy-to-setup & Use Failed Request TracingIIS & ASP.NET Integrated Diagnostics
Diagnostics
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - Security
SD³Componentized web server
40 (!) setup componentsLower the attack surfaceReduction of patch management
URLScan functionality built-in
Security
Satisfy Your Technical Curiosity
Componentization in action
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - Extensibility
New APIsWin32 API
Used by core IIS 7.0 components (modular)No rabbits in hats
Managed code APIIntegrated pipeline with ASP.NET 2.0Transfer your knowledge (IHttp* interfaces)
“ISAPI the easy way”
Extensibility
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
Once upon a time...
w3svc
cgi staticfile
ISAPIextension
handlers
Pre-proc headers
auth’c req
url map
log
End net session
ISAPI Filter Notifications
aspnet_isapi.dll
IHttpModule Events
url map
begin req
auth’c req
auth’z req
resolve cache
handler map
handler exec
update req cache
rel req state
end req
IHttpHandlers
Trace.axd PageHandler
w3wp.exe
custom errors
authentication
logging
compression
determine handler
Extensibility
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
Get together in IIS 7.0
begin
authenticate
authorize
resolve cache
map handler
acquire state
pre-execute handler
execute handler
release state
update cache
log
end
forms authwindows auth
digest auth
basic auth
IHttpModule
*.aspx trace.axd
IHttpHandler
ISAPI extensionstatic file
Native Module
Native Handler
native modulesmanaged modules
role mgr
url auth’zwas
Extensibility
Satisfy Your Technical Curiosity
Your first IIS 7.0 moduleStep 1 – Implementing core functionality
Implement IHttpModuleCompile, deploy and test
Step 2 – Extending & using configurationStep 3 – Satisfy the IT Pro
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - Configuration
The death of the metabaseDistributed XML-based configuration
Integrated IIS + ASP.NET config (web.config)
Allows for delegationReal xcopy deploymentStrongly typed schema (ApplicationHost.config)
Feel free to extend it! (<configSchema>)
Configuration API
Config
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - Configuration
Application 1 Root
web.config
Application 2 Root
web.config
Website 2 Root
web.config
Website 1 Root
web.config
Global server configuration
ApplicationHost.config
Config
<handlers> <add path="*.aspx" modules="aspnet" checkPathInfo="false" verb="GET,POST" /></handlers>
<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>
Satisfy Your Technical Curiosity
Your first IIS 7.0 moduleStep 1 – Implementing core functionalityStep 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 CuriositySatisfy Your Technical Curiosity
IIS 7.0 - 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 administrationCompatible with IIS 6.0 ADSI and WMIWindows PowerShell
SystemManagement
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - ManagementSystem
ManagementVista-style breadcrumb
.NET configuration
IIS configuration
Add modules here
Satisfy Your Technical Curiosity
Your first IIS 7.0 moduleStep 1 – Implementing core functionalityStep 2 – Extending & using configurationStep 3 – Satisfy the IT Pro
Extend the IIS Manager with a moduleWMI support
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - Diagnostics
Real-time informationQueryable by IT Pros and DevelopersProcesses, App Pools & Doms, requests
Failed Request TracingThroughout the IIS 7.0 pipelineIdentify bottlenecks, stuck requests, etc
Custom errorsDetailed localized information
Diagnostics
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
IIS 7.0 - Diagnostics
FREBFailedRequestEventBuffer
ExtensibleAdd tracesControl 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 CuriositySatisfy Your Technical Curiosity
Summary
IIS 7.0 highlightsSecurity is a top priorityExtensibility to the max!Improved managementProduction debugging with diagnostics
AvailabilityIIS 7.0 in Windows VistaIIS 7.0 in “Longhorn” Server Beta 3 Go Live
Satisfy Your Technical CuriositySatisfy Your Technical Curiosity
Q & AHave fun with Internet Information Service 7.0 on Vista and “Longhorn”!
Satisfy Your Technical Curiosity
Satisfy Your Technical Curiosity