When working with IIS (Internet Information Services) Manager, administrators expect to find the Failed Request Tracing
option under the Configure section in the Actions pane. However, many technicians report seeing only the "Limits..." option, which immediately raises red flags for debugging purposes.
Before diving into solutions, let's verify the fundamental requirements:
- IIS version must be 7.0 or later
- "Tracing" role service must be installed
- You need administrative privileges
- The site must not be running in "Shared Configuration" mode
First, check if the Tracing feature is installed:
# PowerShell command to check installed IIS features
Get-WindowsFeature -Name Web-Http-Tracing
# Expected output if installed:
# Display Name Name Install State
# ----------- ---- -------------
# HTTP Tracing Web-Http-Tracing Installed
If missing, install the Tracing feature:
# Install using PowerShell (Admin mode required)
Install-WindowsFeature -Name Web-Http-Tracing -IncludeManagementTools
# For Server Core installations:
Install-WindowsFeature -Name Web-Http-Tracing
For GUI lovers, you can also install via Server Manager:
- Open Server Manager
- Navigate to Manage > Add Roles and Features
- Select "Web Server (IIS)" > "Web Server" > "Health and Diagnostics"
- Check "Tracing" and complete the wizard
After installation, refresh IIS Manager (or restart it completely). The Failed Request Tracing option should now appear under Configure. If it doesn't:
# Reset IIS configuration
iisreset /noforce
For special cases like Shared Configuration or corrupted installations:
# Repair IIS installation
dism /online /cleanup-image /restorehealth
sfc /scannow
# Re-register IIS configuration
%windir%\system32\inetsrv\appcmd.exe install module
Once working, here's how to create a sample tracing rule:
<configuration>
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="ASP" verbosity="Verbose" />
<add provider="ISAPI Extension" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="200-999" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
</configuration>
When working with IIS diagnostics, you expect to see the Failed Request Tracing option under Configure in the Actions Pane. Instead, you're only seeing the "Limits..." option. This typically indicates either missing components or incorrect configuration.
First, verify that the necessary Windows features are installed:
# PowerShell command to check installed IIS features Get-WindowsFeature -Name *Failed* | Where-Object Installed
The expected output should include both "Web-Failed-Request-Logging" and "Web-Http-Tracing".
If the features are missing, install them using this command:
# Install required features Enable-WindowsOptionalFeature -Online -FeatureName IIS-FailedRequestLogging,IIS-HttpTracing
After installation, restart IIS:
iisreset /restart
Once installed, verify the features appear in IIS Manager:
- Open IIS Manager
- Select the server node (not sites)
- Check under "Modules" for "FailedRequestsTracingModule"
If the option still doesn't appear, check these registry settings:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components] "FailedRequestTracing"=dword:00000001
Set the value to 1 if missing or set to 0.
You can bypass the UI and create rules directly using appcmd:
appcmd set config -section:system.webServer/tracing /enabled:"true" /commit:apphost appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:true
Here's a sample web.config snippet for failed request tracing:
<configuration> <system.webServer> <tracing> <traceFailedRequests> <add path="*"> <traceAreas> <add provider="ASP" verbosity="Verbose" /> <add provider="ASPNET" areas="Infrastructure,Module,Page" verbosity="Verbose" /> </traceAreas> <failureDefinitions statusCodes="400-599" /> </add> </traceFailedRequests> </tracing> </system.webServer> </configuration>