新 Windows 2012 Server(IIS 8)上的新网站从 Windows 7 返回 404

新 Windows 2012 Server(IIS 8)上的新网站从 Windows 7 返回 404

我安装了全新的 Windows 2012 Server,并尝试设置一个简单的网站。我可以使用 IP 地址访问默认网站(返回 IIS 8 主页)。但我在新创建的包含单个 .html 页面的网站上遇到了 404 错误。

以下是我在服务器上采取的步骤:
1) 创建一个新站点(保留所有默认设置,但以下情况除外)
2) 将主机名(标头)设置为“test”(保留 IP 为 *,端口为 80)
3) 将物理路径设置为 wwwroot\test4
) 在 wwwroot\test 下创建一个 index.html 文件

以下是我在客户端(Windows 7 Pro)上采取的步骤:
1)更新 hosts 文件以将“test”指向服务器 IP(通过 ping“test”来验证它是否解析到正确的 IP)
2)浏览到 test/index.html

响应:

未找到


HTTP 错误 404。未找到请求的资源。

附加线索:

  • 我检查了日志,没有记录“测试”活动——我看到的只是默认站点请求的日志。
  • 如果我停止默认站点并仅浏览 IP,我会得到相同的 404。
  • 如果我停止两个站点并浏览到该 IP,则会出现连接超时。
  • 如果我停止两个网站并浏览“测试”,我会得到相同的 404。
  • 通过 Fiddler 检查“测试”(404)请求,标头如下:

HTTP/1.1 404 未找到
内容类型:text/html;字符集=us-ascii
服务器:Microsoft-HTTPAPI/2.0
日期:2013 年 6 月 22 日星期六 04:39:10 GMT
连接:关闭
内容长度:315

  • 通过 Fiddler 检查默认站点 (200) 请求,标头如下:

HTTP/1.1 200 OK
内容类型:text/html
内容编码:gzip
最后修改时间:2013 年 6 月 22 日星期六 02:45:45 GMT
接受范围:字节
ETag:“3b69f897f26ece1:0”
变化:接受编码
服务器:Microsoft-IIS/8.0
X-Powered-By:ASP.NET
日期:2013 年 6 月 22 日星期六 04:58:31 GMT
内容长度:820

进一步,拔掉服务器上的网线后:

  • 正在 Ping “测试”仍然响应并解析服务器的 IP(127.168.1.125)
  • 检查我的路由器,我确认 127.168.1.125 已映射到新的 Web 服务器
  • 浏览默认网站仍然超时
  • 浏览“测试”仍然显示 404
  • 检查在Fiddler中请求IP确认“测试”请求解析到正确的 IP(127.168.1.125)

根据拔出网线后的结果,似乎这不是服务器的问题(无论是否插入网线,都会发生同样的事情),但根据 Fiddler 的结果,客户端正在做它应该做的一切(路由到正确的 IP,即使没有连接,仍然会出现 404 错误)。

有很多事情莫名其妙地出错了:
- 为什么即使拔掉了电缆,我在“测试”时也会出现 404 错误?
- 为什么即使拔掉了电缆,我的 ping 仍然有响应?
- 如果服务器不提供服务,那么 404 错误从何而来?
- 为什么在默认站点关闭时浏览 IP 会出现 404 错误?

我不知道现在还能排除什么故障。我排除的故障越多,试图排除的故障越多,情况就越混乱。

我从来没有想过在全新安装的服务器上建立只有一个 HTML 页面的简单网站会给我带来如此多的麻烦。

答案1

127.168.1.125 是环回地址(以及整个 127.0.0.0/8)。此 IP 不在 RFC1918(私有)范围内;只有 172.16.0.0/12、192.168.0.0/16 和 10.0.0.0/8 才可用于此目的。RFC1700 明确禁止使用 127.0.0.0/8 子网进行不同主机之间的通信。

最有可能的是,您正在连接的服务器实际上就是您正在浏览的服务器,尽管事实并非如此。

由于您在拔掉网线的情况下进行了测试,因此我可以看出您正在连接的目标服务器以外的其他服务器。您应该重新编号测试网络以使用私有范围以避免混淆,您的麻烦可能就会消失。

如果您的环境已经使用了所有可用的 RFC1918 IP 地址,您也可以使用 169.254.0.0/24 和 169.254.255.0/24,这是为静态编号主机保留的 APIPA(自动配置)范围(例如,没有工作站会选择这些范围内的数字)。

相关内容