【问题标题】:How to add a default error page using httpErrors如何使用 httpErrors 添加默认错误页面
【发布时间】:2013-03-27 08:50:53
【问题描述】:

我已成功添加自定义 404 页面。我想要做的是创建另一个自定义错误页面,当出现 404 以外的任何错误时显示。例如500、403 等

这就是我现在在 webconfig 中的内容

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

【问题讨论】:

标签: asp.net visual-studio iis custom-error-pages


【解决方案1】:

哦,天哪。我不敢相信我找不到这个简单问题的正确答案!不过,在阅读文档和调试 2 小时后,我找到了它。

<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" defaultPath="/App/Error"> <!-- Do not include ~, this was my issue all long -->
  <clear/> <!-- so that IIS provided error pages are skipped -->
  <!-- add those which you like to provide a view of yours -->
  <error path="/App/Http404" responseMode="ExecuteURL" statusCode="404"/>
  <error path="/App/Http503" responseMode="ExecuteURL" statusCode="503"/>
</httpErrors>

注意&lt;httpErrors&gt; 配置 IIS,而&lt;customErrors&gt; 配置 ASP.NET 和一些旧版本的 IIS (

【讨论】:

  • 不幸的是,httpErrors 的 defaultPath 属性似乎在 Azure 中被锁定了。
  • @Ghasan,如果我们在 azure 或 aws 中托管应用程序会怎样?
  • @RakeshSadhula,我也没有这方面的经验。但从 Triynko 的评论来看,它可能不适用于 Azure。
  • 拯救我的是标签自定义错误适用于 asp.net 的评论,大多数谷歌结果告诉我摆脱它。
  • @OsiasJota 适用于 IIS6 适用于 IIS7+(一直到 IIS10 为止)。 覆盖 无法处理一些错误,例如 500 和 403。 运行在 IIS 级别, 运行在应用程序级别。
【解决方案2】:

您可以在 webconfig 中使用 customErrors :

<customErrors mode="On" defaultRedirect="~/DefaultError.aspx?msg=SomeMessage">
  <error statusCode="404" redirect="~/PageNotFound.html"/>
  <error statusCode="403" redirect="~/AccessDenied.html"/>
</customErrors>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-11-30
  • 2013-08-26
  • 2012-07-15
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多