I'm looking at a server running IIS 7.5 that is throwing generic HTTP 500s for some requests, with no further error reporting or substatus code evident anywhere. So I enabled Failed Request Tracing and the trace report for the failing requests shows a TRIGGER_STATUS of 500 and a FINAL_STATUS of 200. Can anyone explain what the difference between TRIGGER_STATUS and FINAL_STATUS is and why they would not be identical?
The trigger status is the status the FREB rule triggered on and the final status is the HTTP status the client got and also what you will see in your access log.
I ran into this combination of status codes in FREB when tracing requests with a quite big request payload. I solved it by increasing the default log size setting for FREB to 1024kB, the default is 512kB.
Run this command in a cmd.exe prompt:
cd /d "%windir%\system32\inetsrv" appcmd set config /section:sites -siteDefaults.traceFailedRequestsLogging.maxLogFileSizeKB:1024
You can reset this setting to the default using:
appcmd set config /section:sites -siteDefaults.traceFailedRequestsLogging.maxLogFileSizeKB:512
Reference: FREB: LOG_FILE_MAX_SIZE_TRUNCATE