Lap around IIS7 Ashish Jaiman ISV AE ashishja@microsoft
22 Slides1.32 MB
Lap around IIS7 Ashish Jaiman ISV AE [email protected] Microsoft Confidential
IIS 6 Today: A Proven Platform Proven Scalability MySpace - 23 Billion Page* Views/Month Microsoft.com - 10k Req/sec & 300K Connections Match.com 30 million page view daily Proven Security No critical IIS 6 hotfixes since RTM* Proven Trust 54% of Fortune 1000 use IIS (port80software.com) A solid foundation to build on. *(as of Nov 28th 2006)
Internet Information Services (IIS) 7.0 More than a Web server, Internet Information Services 7.0 provides an accessible, extensible platform for developing and reliably hosting Web applications and services. Create Streamlin ed Servers IIS 7.0 Enhancements Modular Architecture Extensible Design Integrated with .NET Manageable Built in Request Tracing Reduced Attack Surface Rapid Application Deployment Extend/Modify IIS Features Fast Diagnostics
Modular Design Modular Pipeline Features are provided in discrete modules Remove or replace modules as you see fit Reduce security exposure Reduce memory footprint Increase performance Add Custom Modules in native or manage code Leverage the power of .NET for all content Integrate with specialized infrastructure Easily incorporate new technologies Modular UI Add custom pages to UI (Winforms) Integrate Application configuration with IIS
IIS6 Request Processing Authentication NTLM NTLM Basic Basic Determi ne Handler Anon Anon CGI CGI Stati Stati c c File File ISAPI ISAPI Send Response Log Log Compres Compres s s Monolithic implementation Install all or nothing ASP.NE T PHP Extend server functionality only through ISAPI
IIS7 Request Processing Authentication NTLM Basic NTLM Basic Anon Anon Authorization ResolveCache CGI CGI Determi Stati Stati ne c c File File ExecuteHandler Handler ISAPI ISAPI UpdateCache Send Response Compres Compres SendResponse Log Log s s Server functionality is split into 40 modules. Modules plug into a generic request pipeline Modules extend server functionality through a public module API.
IIS 7 Modularity
Extensibility IIS 6 IIS 6 extensibility limited to ISAPI filter and extensions UI modifications in MMC are challenging Difficult to extend IIS 6 Schema Web service activation using http only IIS 7 Custom native or manage code modules and handlers Easy to add your apps to UI Simple to extend IIS 7 schema Instrument apps to integrate with IIS 7 tracing Host web services using non-http protocols
IIS 7 Extensibility
.NET Integration Simplifies security and administration Leverage the power of .NET for all content with managed global modules Forms Authentication URL Authorization .NET Caching .NET Role and Membership Providers New APIs manage both IIS 7 and .NET Enables Xcopy deployment scenarios
IIS6 ASP.NET Integration Runtime limitations Only sees ASP.NET requests Feature duplication Authentication NTLM NTLM Basic Basic Determi ne Handler Anon Anon CGI CGI Stati Stati c c File File Form Form s s ISAPI ISAPI Send Response Log Log aspnet isapi.d ll Authentication Authentication Compres Compres s s Window Window s s ASPX ASPX Map Map Handl Handl er er Trace Trace
IIS7 ASP.NET Integration Basic Basic Authentication Anon Anon Classic Mode runs as ISAPI Authorization Integrated Mode ResolveCache aspnet isapi.d .NET modules / ll handlers plug Authentication Authentication Form Form Windows Windows directly into s s pipeline ASPX ASPX Map Map Handl Process all Handl Trace Trace er er requests Full runtime fidelity ExecuteHandler Stati Stati c c File File ISAPI ISAPI UpdateCache SendResponse Compres Compres s s Log Log
IIS 7 .NET Integration
Management Tools GUI IIS Manager Command Line appcmd Script WMI (root\ Managed Code WebAdministration) Microsoft.Web.Administra Manage IIS and ASP.NET tion View enhanced runtime data worker processes, appdomains, executing requests Manage delegation Use whichever management tool suits your needs Note: Powershell has recently been added to the tools you can use! See http://iis.net for details
Coding: Microsoft.Web.Administra tion New APIs enable developers to write tools to deploy, manage, and troubleshoot ASP.NET and IIS ServerManager iisManager new ServerManager(); foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) { Console.WriteLine("W3WP ({0})", w3wp.ProcessId); } foreach(Request request in w3wp.GetRequests(0)) { Console.WriteLine("{0} - {1},{2},{3}", request.Url, request.ClientIPAddr, request.TimeElapsed, request.TimeInState); }
IIS 7 Management
Rapid Troubleshooting with Failed Request Tracing Significantly reduce need for “crash dump analysis” Configure custom failure definitions per URL Time taken “Write Trace log for 200 (ok) response taking over 15 seconds HTTP Status/substatus codes “Write Trace log when you see a 500 error for Invoice.aspx” Error level Manage with UI, WMI, API, Appcmd Instrument applications with custom trace event
Failed Request Tracing
Hosting Web Services in IIS 7 Windows Communication Foundation (WCF) is part of .NET 3.0 IIS 7 will host web service in worker process Health of worker process is managed by Web Activation Service (WAS) Provides “external” monitoring and recycling Activate over TCP, Named Pipe, MSMQ, or HTTP Web Service can share state with an ASP.net application Provides high availability, managed process for web service based applications
Web Service Activation
Summary Custom modules and handlers Create new IIS 7 modules for the public Provide solutions for customers with unique requirements (ie. Custom authentication, auditing ) Extend reach of existing .NET handlers and modules to non ASP.NET content Quickly integrate new technologies Extend UI / Schema: integrated administration Deploy using new APIs Manage with delegated administration Diagnose with built in / extensible tracing