Satisfy Your Technical Curiosity Internet Information Services (IIS) 7.0 End-to-End Overview of...

Preview:

Citation preview

Satisfy Your Technical Curiosity

Internet Information Services (IIS) 7.0End-to-End Overview of Microsoft's New Web Application Server

Bart De SmetMVP, INETA

Info@bartdesmet.nethttp://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