【问题标题】:IIS custom errors not showing custom error pageIIS 自定义错误未显示自定义错误页面
【发布时间】:2013-11-22 08:55:42
【问题描述】:

我在 ASP.NET 网站上设置了自定义错误页面。

有一个错误没有显示自定义错误页面,而只是显示了通常的黄色 ASP.NET 错误页面。如果打开自定义错误,则会显示“/应用程序中的服务器错误”/“运行时错误”,但如果关闭自定义错误,则会显示“viewstate mac 验证失败”错误。

我的 web.config 的相关部分是:

<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" />

要捕获此错误,我是否必须使用不同的状态代码或子状态代码,或者还有其他什么?

注意。服务器 2008 R2,IIS 7。

【问题讨论】:

  • CustomErrors 有一个 defaultRedirect 属性。尝试将其设置为您的 500.aspx。
  • 嗨@Mark,我确实尝试过,但没有任何区别。谢谢。
  • 它实际上是DetailedLocalOnly 的最后一行,它阻止显示您的自定义页面。

标签: asp.net iis-7


【解决方案1】:

经过进一步研究,我发现这意味着 IIS 显示的是错误,而不是 ASP.NET。

我更改了 web.config 的 system.webServer 部分,因此 IIS 也可以使用自定义错误页面,这已经解决了问题。

<system.webServer>
  <httpErrors errorMode="Custom" existingResponse="Replace">
    <remove statusCode="500" subStatusCode="-1" />
    <error statusCode="500" subStatusCode="-1" responseMode="ExecuteURL" path="/500.aspx" />
  </httpErrors>

【讨论】:

  • 我在实现“Owin”中间件时遇到了同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
相关资源
最近更新 更多