Microsoft Internet Information Services 7.0 And Beyond
Vijay SenSenior Program ManagerMicrosoft Corporation
ES14
Session Objective(s): Review key highlights of the IIS7 platform Demonstrate how the new IIS extensions enables
powerful solutions
Session Takeaways: Understand how you can extend IIS7 Understand how you can leverage the new
IIS extensions Understand what IIS looks like in Windows 2008 R2
Session Objectives And Takeaways
Key highlights of the IIS7 platform Demos of extensions Summary Q&A
Agenda
Modular and Extensible Integrated Pipeline Delegated management Diagnostic Capabilities Improved Security
Internet Information Services 7.0 Key highlights
Internet Information Services 7.0 Modular and Extensible Architecture
Server functionality is split into ~ 40 modules...
Modules plug into a generic request pipeline…
Modules extend server functionality through a public module API.
Send ResponseLog Compress
NTLM Basic
Determine Handler
CGI
Static File
ISAPI
Authentication
Anon
SendResponse
Authentication
Authorization
ResolveCache
ExecuteHandler
UpdateCache
…
…
…
…
Internet Information Services 7.0 Integrated Pipeline
Two APP Pool Modes Classic (runs as ISAPI) Integrated Mode
.NET modules / handlers plug directly into pipeline
Process all requests Full runtime fidelity Use managed modules with
native modules
Log
Compress
Basic
Static File
ISAPI
Anon
SendResponse
Authentication
Authorization
ResolveCache
ExecuteHandler
UpdateCache
…
…Authentication
Forms Windows
Map Handler
ASPX
Trace
……
…
aspnet_isapi.dll
Internet Information Services 7.0 Delegated configuration
Web.Config Site #1• Delegation Settings• App Settings• .Net Settings
Web.Config Site #2• Delegation Settings• App Settings• .Net Settings
Web.Config Site #3• Delegation Settings• App Settings• .Net Settings
ApplicationHost.configAdministration.config
Server Wide Settings Global Feature Delegation IIS Manager Users Sites
Server Changes “Global”
Individual Site Changes
Internet Information Services 7.0 Delegated Management
feature focusedsimplified
tasks
familiartree view
• One tool – configures both IIS and ASP.NET • Works for machine administrator and site owner• Remotes over HTTP, making it firewall friendly• Supports managed extensibility
Internet Information Services 7.0 Extensions
ApplicationHost.configAdministration.config
Extensible Configuration
IIS 7 Extension
Extensible Management
Module API
Build an extension that puts a text watermark on all images served for a site
Provide a management interface to allow changing the watermark text
Sample extension:
Artwork
Building a custom extension for IIS:
IIS 7 Extensibility
demo
New IIS7 Extensions
IIS7 Extensions
MEDIA INTEGRATION•Web Playlist•Bit rate throttling
DEPLOYMENT•Microsoft Web Deployment Tool
SECURITY•URL Scan
REQUEST HANDLING•URL Rewriter•Application Request Routing
MANAGEMENT•Administration Pack•Database Manager•Remote Management•Powershell
PUBLISHING•FTP•WebDAV
Single place to discover all tools and components
Automatically install selected tools and components
Automatically configure IIS7
The Web Platform Installer
Discovery and acquisition of the web stack:
The Web Platform Installer
demo
Synchronize web applications Package Easily deploy Migrate from IIS6 to IIS7
The Microsoft Web Deployment Tool
Packaging and Deployment of Web applications:
Microsoft Web Deployment Tool
demo
ES15: Deploying Web Applications with Microsoft Internet Information Services 7.0 and the Web Deployment Tool Time and venue: 10/29 | 4:45 PM-6:00 PM | 408A
The Microsoft Web Deployment Tool
Easy to use URLs http://www.pdcpaintings.com/default/rohit/hills vs.
http://www.pdcpaintings.com/default.aspx?artist=rohit&theme=hills
Search engine friendly URLs Enforce http://www.mysite.com instead of
http://mysite.com Preventing hot-linking Block unwanted search crawlers
URL Rewrite Extension
Simpler site names :
The URL rewrite extension
demo
Optimize bandwidth costs Sequence media content Encode URLs
Media Extensions
Content protection and reduced bandwidth cost:
IIS7 Media extensions
demo
Load balance across on-premises servers Highly available Increase capacity
Application Request Routing
Load balance and scale web applications:
Application Request Routing
demo
Application Request Routing (ARR)Key takeaways
Back end servers
Front end server(can be server core)
Client
ARR
IIS Release Strategy
IIS7 Extensions
WS 2008 WS 2008 R2
The platform
Extensions added to setup
New scenarios
Tight customer feedback loopActive forum support for pre-releasesCSS support for released extensions
Key chages to IIS in R2
ASP.NET on Server Core
Integrated PowerShell Provider
Integrated FTP and WebDAV
New IIS Manager Modules
Configuration Logging & Tracing
Best Practices Analyzer
Highly extensible and customizable web platform
Rich tools to help with development and deployment
Improved diagnostics and troubleshooting Easily extensible remote management New scenarios enabled by freely
downloadable extensions available at www.iis.net
Summary
ResourcesTopic Resource
Developing modules and handlers http://learn.iis.net/page.aspx/366/developing-iis-70-modules-and-handlers-with-the-net-framework/
Extending the management UI http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/
Microsoft Web Platform Installer http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx
Microsoft Web Deploy http://www.iis.net/downloads/default.aspx?tabid=34&i=1603&g=6
Microsoft URL Rewrite http://learn.iis.net/page.aspx/460/using-url-rewrite-module/
ResourcesTopic Resource
IIS Media pack http://www.iis.net/media
Web Playlist http://learn.iis.net/page.aspx/382/web-playlists-for-iis-70---creating-a-simple-playlist/
Bit-rate Throttling http://learn.iis.net/page.aspx/148/bit-rate-throttling-configuration-walkthrough/
Application Request Routing http://learn.iis.net/page.aspx/489/using-the-application-request-routing-module/
In-depth technical articles and samples
Iis.NET: Home For IIS Community!
Connect with other IIS experts on blogs and forums
Free advice and assistance in forums
Download center with IIS solutions
Evals & Recordings
Please fill
out your
evaluation for
this session at:
This session will be available as a recording at:
www.microsoftpdc.com
Please use the microphones provided
Q&A
APPENDIX
Artwork #1
No bandwidth control with traditional HTTP downloads
Drop-off point in videos: Microsoft.com ~ 40% Typical video site < 20%
Progressive Download Today
Bit Rate Throttling
Web Platform InstallerHow does it work?
http://www.microsoft.com/web/appdocs/WebProductList.xml
InstallationEngine
ApplicationEngine
Product NameDescriptionInstaller LocationDependenciesIncompatibilitiesDiscovery logic
Product NameDescriptionInstaller LocationDependenciesIncompatibilitiesDiscovery logic
Execute msi/exeHandle errorsHandle reboot
XML handlingDiscoveryResolve dependencies
The URL rewrite rule in web.config
<rewrite>
<rules>
<rule name="RewriteUserFriendlyURL1" enabled="true" stopProcessing="true">
<match url="^([^/]+)/([^/]+)/([^/]+)/?$" />
<action type="Rewrite“ url="{R:1}.aspx?artist={R:2}&theme={R:3}" />
</rule>
</rules>
</rewrite>
Microsoft Web Deployment Tool
SOURCE SERVER
MS DeployENGINE
AppHost
Content
APPHOST PROVIDER
AppHost
TARGET SERVER
MS DeployENGINE
AppHost
Content
APPHOST PROVIDER
AppHost
Synchronize site request
Request metadata
Query site metadata
= Config + Content
metadata
CONTENT PROVIDER
Compute differences
Request for changed data
ModifiedContent
Content
CONTENT PROVIDER
ModifiedContent
Content
© 2008 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.
Web Playlists extensionHow does it work?
Get abc.isx
abc.asx
Get ads.wmvads.wmv
Get movie.wmv
movie.wmv
---------------------
____________
Playlist – abc.isx1. Ads.wmv2. Movie.wmv
Web Playlists extensionHow does it work?
Get abc.isx
abc.asx
Get movie.wmvFAIL!
Get movie.wmv
FAIL!
Playlist – abc.isx1. Ads.wmv2. Movie.wmv
Any requests from a different client, or attempts to skip ads, are failed
---------------------
____________
Playlists Examples
Client side ASX
Web Playlists ASX
URL rewrite extensionHow does it work?
<globalRules> - apply to the entire server
<rules> - apply to a specific location
Subsequent pipeline modules work with rewritten URL
Handler is resolved based on rewritten URL
Pipe
line
Application Request Routing extensionHow does it work?
SetU
RLURL Rewrite ARR
Begin
End
Inspect and change URL
Subscribe to Begin Request
Set var ‘URL’ = Server Farm name
Add Global rewrite rule
Subscribe to Map Request Handler
Back end servers
If var ‘URL’ == Server Farm nameLoad balance
Send requestReceive response
Send response
Putting it all together
IIS7 Extensions
WS 2008 WS 2008 R2
Tools
IIS core
URL rewrite ARR Web
PlaylistBit-rate
Throttling
IIS core + extensions
Web Platform Installer
Web Deploy
How to get original URL in your app?
ASP & ASP.NET:
PHP
or
Request.ServerVariables[“HTTP_X_ORIGINAL_URL”];
$_SERVER[`REQUEST_URI`];
$_SERVER[`HTTP_X_ORIGINAL_URL`];