230 likes | 454 Views
IIS7 Troubleshooting. Increase Uptime with Rapid Troubleshooting. www.iis.net. Troubleshooting Overview. Reset and Recycle IIS Reset Application Pool Management Error Codes New HTTP Sub-status codes Custom/Detailed Errors Tracing in IIS7 and Longhorn ETW tracing IIS7 Tracing
E N D
Increase Uptime with Rapid Troubleshooting www.iis.net
Troubleshooting Overview • Reset and Recycle • IIS Reset • Application Pool Management • Error Codes • New HTTP Sub-status codes • Custom/Detailed Errors • Tracing in IIS7 and Longhorn • ETW tracing • IIS7 Tracing • Common Problems and solutions
Application Pool Management • Easier to manage pools with IIS Manger • Manage long lists of pools • Displays Identity, Framework Version, Type • Worker Process information avail in UI • Recycle AppPools using: • Command Line: • appcmd recycle appool “DefaultAppPool” • IIS Manager: AppPools Recycle • Microsoft.web.adminsitration API • See currently running requests: • appcmd list requests • UI: Worker Process View Current Requests • Unload App Domain now possible
Rapid Fail Protection Actions • RFP occurs when pool fails X times in Y minutes (configurable) • Prevents continuous attempts to start a very ill process • Process will eventually recycle after Y minutes • IIS 7 allows a configurable action to occur when RFP kicks in • See Application Pool, Advanced Settings
demo Application Pool Management Name Title Group
New HTTP Sub-status codes • New sub-status codes added • Provides more detail to help quickly identify problems • Recorded in IIS logs • Combined with detailed errors to give actionable error messages • Examples: • 404.5 404.15: Denied by Request Filtering (URLScan replacement) • 500.21 500.24: ASP.NET integrated pipeline
Detailed Errors • New Verbose errors provides much more information • Provided by CustomErrors IIS7 module • Suggests Causes and Solutions – often suggests corrective action or lines of inquiry • Details include configuration section in question, module in use, page, etc. • Verbose errors only delivered to localhost by default
Custom Errors • Errors can be customized similar to IIS6 • Options are: • File: Show a specific file • ExecuteRequest : url to a page or program in the same application pool. (url-rewrite, does not involve round trip) • New to IIS 7 • Redirect : Redirect to a new url (like a URL redirection, with client roundtrip) • Replace=All (setting is not in UI) • In some cases, a crash or error may not “bubble up” to IIS7 custom error module. • This switch ensures IIS7 errors are used
Custom Error Considertaions • Delegation for custom error configuration is off by default • Prevents web.config rule to display files on the server when error occurs • If you own ALL responses (Replace=All), must handle all scenarios (eg. SOAP 500) • In Classic mode, ASP.NET errors are overridden by IIS7 custom errors • Error handling differences in classic vs integrated mode
Event Tracing for Windows(ETW) • Built into the OS • Present on Windows Server 2003 • Significantly extended in Longhorn • ETW providers report into a binary log • No UI for configuration • Logs can be very large and must be parsed by utility • TIP: Logparser is your friend • Lack of ability to setup “triggers”
demo ETW Tracing
IIS7 Failed Request Tracingaka FREB (failed request event buffering) • Enable no-repro instrumentation for “failed requests” • Turn tracing on, but only keep the events for “failed requests” • Allow for custom failure definitions per URL • Time taken • Status/substatus codes • Enable per-URL trace configuration • Allow me to define what to trace per URL • Example: only trace aspnet events for “*.aspx” • Persist failure log files beyond process lifetime • Common scenarios: • Request takes too long/hangs -> very common today • Request error -> request completes, but with error status code • Authentication/Authorization problems • Server 500 errors
Viewing Trace Data IIS 7 Failed Request Events Logs • ETW (IIS 6)Trace Data is useful, but difficult to use. Requires utilities to extract and present events from file. • IIS 7 provides preformatted XSLT for easy analysisof capture In Vista RTM
demo IIS7 Tracing Identifying cause of a slow response Determining why a page isn’t cached
TracingOther Tracing Settings • Most are not in UI, but can be set in config • Log directory • maxLogFiles (in UI) • maxLogFileSizeKB • Run a command when a rule fires: • customActionsEnabled • customActionExe • customActionParams • customActionTriggerLimit
demo ASPX/WCF
Extensibility Points • Create your own errors pages • Replace IIS7 error handling module • Applications can write events to the IIS 7 tracing system • Trigger specific actions when rapid fail protection occurs • Custom actions can be configure on specific errors • ASP.net pages and WCF can report trace events into trace logs
IIS 7 Rx • ASP.net application doesn’t’ work in integrated mode: • Some settings in web.config may need to be repositioned. • Appcmd Migrate will do this automatically • Use Classic mode • IIS 6 installation scripts don’t work • Install IIS Management Compatibility Layer • Where do I set Read/Execute permissions for a site? • Moved to handler permissions • Why doesn’t ASP.net run? • Is it installed? Most questions of this sort are caused by the reduce footprint installation
Summary • IIS Manager improves management and better visibility of runtime environment • Error messages are actionable • Command line interfaces and APIs for state query, control, and diagnostics • Built in tracing helps identify many problems without specialized debuggers • Extensibility allows new and customized options
© 2007 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.