【问题标题】:ASP.NET Custom Errors being ignoredASP.NET 自定义错误被忽略
【发布时间】:2010-10-04 14:34:16
【问题描述】:

我在 web.config 中配置了自定义错误,但 IIS 6.0 正在返回网站配置的“自定义错误”选项卡中指定的自定义错误。

  <system.web>
        <customErrors>
              <error statusCode="404" redirect="UrlRedirect.aspx" />
        </customErrors>
  </system.web>

我会错过什么?

【问题讨论】:

    标签: asp.net iis-6


    【解决方案1】:

    请记住,web.config 中指定的 404 处理程序仅适用于由 ASP.NET 运行时处理的文件 - .htm、图像、css、javascript 都将由主机 IIS 中指定的 404 页面处理设置。

    如果您希望这些文件类型由您的自定义错误处理,您需要将 IIS 设置为将 404 定向到 UrlRedirect.aspx。

    【讨论】:

    • 是的,这就是我最终所做的......但我怎样才能让它在 Web.Config 中处理呢?这是所有在线示例显示的内容(即 404 错误),但它们对我不起作用。
    • 您不能,除非您告诉 IIS 通过 ASP.NET 处理程序引导所有请求,这会影响性能。在这两个地方定义重定向是处理所有 404 的唯一真正方法。
    • 因此,如果我有 404(在 pdf 上),IIS 将接管并重定向到 IIS 配置中指定的错误页面。我可以删除管理器中的所有错误页面项,它会使用我的 web.config 配置来确定去哪里吗?
    • @Keith - 好问题,我没有尝试过,但我认为它不会起作用,除非您还告诉 IIS 对所有请求使用 ASP.NET(即通过ASP.NET 模块的通配符处理程序) - 否则它不会将 .pdf 的请求与 ASP.NET 相关联,也不会给它使用错误配置的机会。
    【解决方案2】:

    您可能缺少 mode="On":

    <system.web>
            <customErrors mode="On">
                  <error statusCode="404" redirect="UrlRedirect.aspx" />
            </customErrors>
    </system.web>
    

    【讨论】:

    • 是的,我是……愚蠢的我。虽然,我终于通过将自定义错误指向一个 URL 来让它在 IIS 中工作......我现在不想改变它! ;)
    【解决方案3】:

    实际上,如果我正确理解了您的困境,听起来好像正在返回自定义错误,如果这不是您想要的,您需要将模式设置为“关闭”或“RemoteOnly”才能看到您环境中的详细错误消息。

    <customErrors mode="Off"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2018-04-12
      • 2018-12-07
      • 2014-10-09
      • 2013-10-10
      • 1970-01-01
      • 2021-05-13
      相关资源
      最近更新 更多