【问题标题】:Custom error pages for StaticFile handlerStaticFile 处理程序的自定义错误页面
【发布时间】:2013-11-19 15:57:21
【问题描述】:

我正在尝试让自定义错误页面适用于任何未经处理或不是磁盘上有效文件的 URL。

我现在有以下设置:

<system.web>
  <customErrors mode="On" defaultRedirect="~/Error">
    <error statusCode="404" redirect="~/Error/Error404" />
    <error statusCode="500" redirect="~/Error" />
  </customErrors>
</system.web>
<system.webServer>
  <httpErrors errorMode="Detailed" defaultResponseMode="ExecuteURL">
    <remove statusCode="404" />
    <remove statusCode="500" />
    <error responseMode="ExecuteURL" statusCode="404" path="/Error/Error404" />
    <error responseMode="ExecuteURL" statusCode="500" path="/Error" />
  </httpErrors>
</system.webServer>

这会正确重定向以下 URL:

  • /test
  • /test/foo/bar

但是,任何包含句点的内容都会给出以下消息:

  • 模块 IIS Web 核心
  • 通知 MapRequestHandler
  • 处理程序静态文件
  • 错误代码 0x80070002
  • 请求的网址 https://localhost/test.txt
  • 物理路径 C:\foo\test.txt
  • 登录方式匿名
  • 登录用户匿名

我还需要这些 URL 来重定向到我的自定义错误页面。

【问题讨论】:

    标签: asp.net iis web-config


    【解决方案1】:

    尝试使用

    <httpErrors errorMode="Custom" .. />
    

    但是,要小心。我发现我有时会遇到循环条件,或者 IIS 错误页面将在我的自定义错误模块之前执行。 IIS 和 ASP.NET 应用程序之间的接口并不总是很好。我似乎仍然无法找到在 ASP.NET 中捕获静态文件 404 的方法,否则会使用静态文件处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 2018-04-29
      • 2011-06-01
      • 1970-01-01
      相关资源
      最近更新 更多