Roadmap › IIS — Internet Information Services and Hosting .NET Applications › Module: Operations
Lessons in this course (9)
8. Logging, Failed Request Tracing and troubleshooting HTTP errors
Intermediate★ Must knowLesson 8 of 9
Where to look:
- IIS logs (
C:\inetpub\logs\LogFiles\W3SVC<siteId>\) — every request with status, sub-status and Win32 status (sc-status,sc-substatus,sc-win32-status) andtime-taken. - Event Viewer → Windows Logs → Application/System — app crashes, ASP.NET Core startup failures, WAS pool stops.
- Failed Request Tracing (FREB) — enable on the site, add a rule (e.g. status 500 or time > 5 s) → detailed XML trace of every module step in
inetpub\logs\FailedReqLogFiles. - ASP.NET Core stdout log (
stdoutLogEnabled="true", create thelogsfolder) and your app's own logs. - Worker Processes (IIS Manager) — currently executing requests per pool.
| Error | Meaning | Typical fix |
|---|---|---|
| 401.1 / 401.2 | Logon failed / auth method not enabled | Enable the right authentication mode; check credentials |
| 403.14 | Directory listing denied | Missing default document or app not deployed |
| 404.0 / 404.3 | Not found / MIME map missing | Wrong path; add <mimeMap> for e.g. .json, .woff2, .webmanifest |
| 404.13 | Request too large | Raise maxAllowedContentLength |
| 500.19 | Config error | Invalid/duplicated web.config section, missing module (URL Rewrite, ANCM), locked section |
| 500.21 | Handler not recognised | ASP.NET not installed or pool in Classic mode |
| 500.30 | ASP.NET Core app failed to start (in-process) | Startup exception — stdout log, Event Viewer, run dotnet app.dll manually |
| 500.31 / 500.32 | Runtime not found / bitness mismatch | Install the right .NET runtime/Hosting Bundle; 32/64-bit settings |
| 502.5 | Process failure (out-of-process) | Same as 500.30 |
| 502.3 | Bad gateway / timeout from backend | Long requests, ARR/ANCM timeout settings |
| 503 | Service unavailable | App pool stopped (rapid-fail, wrong identity password), queue full |