Windows Server 2016 上的新 IIS 站点始终返回 404 未找到

Windows Server 2016 上的新 IIS 站点始终返回 404 未找到

我第一次使用 Windows Server 2016 设置服务器,在创建新的 IIS 网站时,我发现所有请求都返回 404 Not Found。

查看 Web 服务器日志,没有记录任何请求。查看 HTTPERR 日志,我可以看到记录了 NotFound 错误,但我查看的文档 (https://support.microsoft.com/en-us/help/820729/error-logging-in-http-apis) 没有将 NotFound 列为支持的错误原因。

该应用程序是一个基于 .NET Framework 4.6.2 的原始 ASP.NET MVC 应用程序;我曾尝试在应用程序根文件夹中放置一个空的 index.html 并将其设置为默认文档,但这也不起作用。

以下是日志中的典型一行:

2018-03-26 00:39:19 192.168.3.252 60475 192.168.3.11 443 HTTP/0.9 GET / - 404 - NotFound -

该日志条目中有两件事让我感到困惑 - 为什么它给出的 HTTP 版本是 0.9,而不是我期望的 1.1 或 2.0,为什么给出的路径是 /,而不是 我期望的eg/index.html 或?/home/index

答案1

记录的路径始终是来自实际 HTTP 请求的路径,而不是结果路径(即重写后的 HTTP 路径或实际文件系统路径)。日志行的这一部分完全正常。

CookedURL + 查询

URL 和与其关联的任何查询均记录为一个字段,并以问号 ( 0x3F) 分隔。此字段的长度限制为 4,096 字节,将被截断。

HTTP/0.9只是非常简单的请求(格式错误或过时)的结果,GET /没有HTTP/version部分和附加请求行:HTTP 0.9是一个单行协议,没有任何标头,包括Host:HTTP 1.1 标准中引入的标头。缺少Host:标头意味着默认网站被用来代替捆绑您的实际网站有。如果默认网站没有索引,则404 - Not found可能是由此造成的。

仅从您问题中的细节来看,我无法推断出是什么导致了此类查询。浏览器和 IIS 之间是否存在问题?

答案2

从您发布的日志条目来看,您似乎是从同一网络中的客户端计算机直接连接到服务器。您是尝试通过 IP 地址还是 DNS 名称连接到网站?

听起来您已经配置了主机名并尝试通过 IP 地址访问网站。您的绑定是如何配置的?

相关内容