【问题标题】:web.config errors fail with responseMode="File"web.config 错误因 responseMode="File" 而失败
【发布时间】:2013-07-06 04:41:01
【问题描述】:

根据Microsoft's documentation,对于静态(即HTML)内容,web.config 应为每个错误读取responseMode="File"

目前,我的 web.config 包括

<httpErrors errorMode="Custom">
    <!-- remove statusCodes -->
    <error statusCode="404" path="/error/404.html" responseMode="ExecuteURL" />
</httpErrors>

这会返回正确的自定义错误页面,但会返回 200 OK 状态代码。

当我将“ExecuteURL”更改为“File”时,我的服务器确实返回了 404,但未显示自定义错误页面。相反,我收到消息“您要查找的资源已被删除、名称已更改或暂时不可用。”

web.config 应该如何读取,返回一个静态文件,但也是一个 404?

编辑:在得知该标签适用于 IIS 后删除了 &lt;customErrors&gt; 问题

【问题讨论】:

  • 你应该把错误页面放在项目的根目录下。

标签: web-config iis-7.5 http-status-code-404 http-error


【解决方案1】:

很长一段时间以来,我一直在解决完全相同的问题。现在我偶然发现问题出在斜杠字符上。

这对我有用 - 没有开始斜线并使用 \ 而不是 /

  <error statusCode="404" path="Static\WebServer\PageNotFound.htm" responseMode="File" /> 

【讨论】:

  • 确实,如果您有一个前导斜杠,它将不起作用,只会返回通用内部错误页面。我在做 path="\PageNotFound.html" 它真的只需要 path="PageNotFound.html"。
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-11
  • 2016-08-15
相关资源
最近更新 更多