server functionality is split into ~ 40 modules... modules plug into a generic request pipeline…...

40
Microsoft Internet Information Services 7.0 And Beyond

Upload: david-truan

Post on 28-Mar-2015

244 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Microsoft Internet Information Services 7.0 And Beyond

Page 2: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Key highlights of the IIS7 platform Demos of extensions Summary Q&A

Agenda

Page 3: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Modular and Extensible Integrated Pipeline Delegated management Diagnostic Capabilities Improved Security

Internet Information Services 7.0 Key highlights

Page 4: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 5: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 6: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 7: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 8: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Internet Information Services 7.0 Extensions

ApplicationHost.configAdministration.config

Extensible Configuration

IIS 7 Extension

Extensible Management

Module API

Page 9: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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:

Page 10: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Artwork

Page 11: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 12: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Single place to discover all tools and components

Automatically install selected tools and components

Automatically configure IIS7

The Web Platform Installer

Page 13: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Synchronize web applications Package Easily deploy Migrate from IIS6 to IIS7

The Microsoft Web Deployment Tool

Page 14: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 15: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 16: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Optimize bandwidth costs Sequence media content Encode URLs

Media Extensions

Page 17: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Load balance across on-premises servers Highly available Increase capacity

Application Request Routing

Page 18: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Application Request Routing (ARR)Key takeaways

Back end servers

Front end server(can be server core)

Client

ARR

Page 19: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 20: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 21: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 22: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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/

Page 23: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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/

Page 24: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 25: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 26: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

APPENDIX

Page 27: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Artwork #1

Page 28: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

No bandwidth control with traditional HTTP downloads

Drop-off point in videos: Microsoft.com ~ 40% Typical video site < 20%

Progressive Download Today

Page 29: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Bit Rate Throttling

Page 30: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 31: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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}&amp;theme={R:3}" />

</rule>

</rules>

</rewrite>

Page 32: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 33: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

© 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.

Page 34: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 35: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

---------------------

____________

Page 36: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

Playlists Examples

Client side ASX

Web Playlists ASX

Page 37: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 38: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 39: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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

Page 40: Server functionality is split into ~ 40 modules... Modules plug into a generic request pipeline… Modules extend server functionality through a public

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`];