问:我们运行的是 IIS 5.0 和 Windows 2000 Advanced Server。我们的多个域名共用同一个 IP 地址,而且使用了主机头,在为这些域名提供 Web 站点时,IIS 仅向 IE 或任何其他 Web 浏览器,为所有域返回一个 Web 站点,根本不考虑正在使用的主机头。DNS 的设置没有问题,因为对于任何有疑问的域名,我们可以 ping 通,并且返回正确的 IP 地址。这些 Web 站点的属性被设置为使用全部未分配的 IP 地址,端口号为 80,且使用主机头。每个站点的主目录路径都是唯一的。为什么所有这些虚拟 Web 站点只返回一个 Web 站点?
答:当我遇到那些配置似乎都正确但仍然运行不正常的问题时,我会先停下来,从全局入手予以解决。问题通常有以下两类:配置错误或服务器问题。这时应尽最大努力确定所遇到的问题属于哪一类,而且应该尽快这样做。
首先应查看这个具有特定功能(主机头)的应用程序(IIS)的历史记录。实践证明,主机头和 IIS 5 配合使用是非常强大而且极为可靠的。我所遇到的绝大部分问题都是配置问题。因此,在对某些更为可疑之处(例如,原数据库受损)进行评估之前,我会先集中精力解决配置不当问题。
当然,根据您所描述的这种症状,似乎是因为同时使用 SSL 和主机头所导致的。当要使用主机头来识别站点时,您不能在基于主机头的 Web 站点上使用 SSL。
如果未使用 SSL,那么接下来我会删除所有 Web 站点的“全部未分配"设置,并用正确的 IP 地址关联它们。这将排除 DNS IP 地址指向其他地址的可能性,因为如果是这样的话,没有 Web 站点会响应。一般说来,我不会将 IP 地址设置为“全部未分配",因为这可能会导致 Web 站点会根据其他 Web 站点的配置情况启动或停止响应。最好是明确指定站点要使用的地址。
当所有 Web 站点都配置为使用主机头后,在您使用这个 IP 地址时,没有站点会进行响应。相反,您会收到这样一条消息:“这个地址上没配置 Web 站点"(No web site configured at this address)。因此,接下来应该尝试检查是否存在这种情况,即启动 Internet Explorer,然后通过 IP 地址而不是 FQDN 来访问 Web 服务器。(也就是说,不要使用 http://服务器名,而是使用 http://<IIS 的 IP 地址>)如果有 Web 站点响应,那么仔细检查该站点的配置(因为仅提供 IP 地址时,它是不应该响应的)。
IIS 用户界面出现这种问题通常都是由于这种不当配置引起的。
550)this.style.width=550; if(this.height>550)this.style.width=(this.width*550)/this.height;" />
在按如上所示方式进行配置后,Web 站点将会对这个 IP 地址进行响应,主机头不再起作用。出现这种情况是因为,当您首次打开“高级多 Web 站点配置"窗口(Web 站点属性,Web 站点,高级)时,只有“添加"按钮处于启用状态。这时不要单击“添加"按钮,而是选择现有的(全部未分配) 80项,然后单击“编辑"。确认所有 Web 站点的“高级 Web 站点标识"选项卡都已正确配置。
如果站点的数量很多,那么下一步的尝试可能不太可行。如果可以的话,除保留一个 Web 站点,停止其他所有站点,然后尝试通过名称和 IP 地址访问那个站点。正常情况下,采用 IP 地址应该无法访问,而采用名称则可以。如果确实如此,那么停止刚测试的那个站点,启动另一个并测试它。不断重复此过程,直至确认每一个都正常工作。如果发现某一个站点能对 IP 地址进行响应,那么这个站点要么是工作不正常,要么是配置不当。
如果所有站点的配置都正确,它仍无法正常工作,那么我们转为检查系统,确认系统是否有问题。如果是这样的话,那将很不幸,因为这通常需要采取比较复杂的措施。
您可以尝试以下一种或两种方法:
| • |
用 MetaEdit 2.2 浏览元数据库,并查找是否有元数据库严重受损。
|
| • |
删除,然后重新创建任何操作不正常的站点。
|
|