IIS7
Troubleshooting
www.iis.net
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
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
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
#1 of 5
#2 of 5
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
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
#3 of 5
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
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
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”
#4 of 5
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
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 analysis of
capture
•
•
Identifying cause of a slow response
Determining why a page isn’t cached
#5 of 5
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
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
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
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.