10

I have custom error pages setup on an ASP.NET website.

There is one error that is not showing a custom error page, and just showing the usual yellow ASP.NET error page. If custom errors are turned on it shows "Server error in / application" / "Runtime error", but if custom errors are off it shows "validation of viewstate mac failed" error.

The relevant parts of my web.config are:

<system.web>
  <compilation debug="false" targetFramework="4.0" />
    <customErrors mode="On" redirectMode="ResponseRewrite">
      <error statusCode="404" redirect="/404.aspx" />
      <error statusCode="500" redirect="/500.aspx" />
    </customErrors>

<system.webServer>
  <httpErrors errorMode="DetailedLocalOnly" />

To trap for this error do I have to use a different status code or substatuscode or is there something else?

NB. Server 2008 R2, IIS 7.

johna
  • 9,832
  • 13
  • 42
  • 65
  • CustomErrors has a defaultRedirect attribute. Try setting that to your 500.aspx as well. – Mark Nov 22 '13 at 10:23
  • Hi @Mark, I did try that but it did not make any difference. Thanks. – johna Nov 22 '13 at 19:16
  • It's actually the last line with `DetailedLocalOnly` which is preventing your custom page being shown. – Marc Jun 08 '17 at 09:01

1 Answers1

21

After further research I see that this means that IIS is displaying the error rather than ASP.NET.

I changed the system.webServer part of my web.config so IIS can also use the custom error page and that has solved the problem.

<system.webServer>
  <httpErrors errorMode="Custom" existingResponse="Replace">
    <remove statusCode="500" subStatusCode="-1" />
    <error statusCode="500" subStatusCode="-1" responseMode="ExecuteURL" path="/500.aspx" />
  </httpErrors>
johna
  • 9,832
  • 13
  • 42
  • 65