Certain IIS7/7.5 500.19
configuration errors only render on a browser running on the local server.
This appears to happen regardless of whether I set <httpErrors errorMode="Detailed" existingResponse="PassThrough" />
in the system.webServer
section of a site's web.config
file (or even globally for that matter).
For example, I had a developer who reported that he was just getting the generic IIS7 500 error page:
This was happening even though he had the following configured in his web.config
:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" existingResponse="PassThrough" />
</system.webServer>
</configuration>
If I browse to the site on the server itself I see (some sensitive info redacted):
Would the reason for this be that if the web.config
has errors it therefore can't be parsed. Because it can't be parsed the local <httpErrors>
setting doesn't get read and thus causes IIS to revert to default settings (i.e. DetailedLocalOnly)?
Update:
@LazyOne - suggested setting the above config at the server level which I already tried. This resulted in just raw 500 errors:
Having poked around some more, I've worked out how to get
500.19
errors to appear remotely even if the siteweb.config
is clobbered.The trick is to set (globally)
errorMode="Detailed"
andexistingResponse="Replace"
.The
existingResponse="Replace"
setting is a bit counter intuitive but does make sense.