Troubleshooting Missing Failed Request Tracing Option in IIS Manager Configuration


1 views

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:

  1. IIS version must be 7.0 or later
  2. "Tracing" role service must be installed
  3. You need administrative privileges
  4. 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:

  1. Open Server Manager
  2. Navigate to Manage > Add Roles and Features
  3. Select "Web Server (IIS)" > "Web Server" > "Health and Diagnostics"
  4. 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:

  1. Open IIS Manager
  2. Select the server node (not sites)
  3. 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>