为什么我可以浏览到本地主机,而不是我的计算机名称?(IIS7)

Los*_*bit 3 iis-7

我对 IIS 不是很了解,但我正在尝试做一些我认为很简单的事情。

我所做的只是通过 IIS 添加到站点的绑定。然后我通过删除绑定来取消我的更改。

在 IE 中,如果我浏览到http://localhost:80,我会看到一张漂亮的图片,里面有一堆欢迎信息和一个大的“IIS7”,这要感谢 Microsoft 的图形设计师。

如果我浏览到http://mycomputername:80,我会收到 404。

如果我浏览到本地主机上的任何其他虚拟目录,我会得到 404。

知道我该如何解决吗?

Sha*_*den 8

符合 HTTP/1.1 的 Web 浏览器会随每个请求发送一个名为“Host”的 HTTP 标头,以通知服务器他们从哪个名称请求资源——这允许服务器通过相同的 IP 地址托管多个单独的站点。

因此,现代 Web 服务器具有内置功能,可以根据“主机”标头的内容处理对不同主机的请求,就好像它们进入完全不同的站点一样。

在您的情况下,从 IIS 生成的 404 响应中可以明显看出,计算机的名称已成功解析到您的本地系统(具体解析到的地址取决于您的网络配置),但 IIS 未将请求映射到站点你期待它。

问题出在您的 IIS 绑定配置中。您的问题是以下三种可能性之一:

  • 所需站点上的绑定未设置为正确的主机名。它可以设置为 just localhost,而请求的标头为mycomputername
  • 绑定未设置为正确的 IP 地址。它可能设置为 just 127.0.0.1,而名称解析过程可能将名称解析为绑定地址。
  • 即使所需站点的绑定匹配,另一个站点也会收到请求,因为它具有更适用的绑定。例如,如果您想要的站点绑定到给定端口上的所有地址,而另一个站点的同一个端口绑定了一个更具体的地址,它将改为获取请求。