11

根据Microsoft 的文档,对于静态(即 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”更改为“文件”时,我的服务器确实返回了 404,但未显示自定义错误页面。相反,我收到消息“您要查找的资源已被删除、名称已更改或暂时不可用”。

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

编辑:<customErrors>在得知该标签适用于 IIS <= 6.0 后删除了问题

4

1 回答 1

27

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

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

  <error statusCode="404" path="Static\WebServer\PageNotFound.htm" responseMode="File" /> 
于 2014-05-13T09:50:29.483 回答