您现在的位置: 网页制作教程网 >> 服务器 >> Web 服务器 >> 文章正文

IIS常见问题及解答以及故障分析

作者:动态网站…

来源:动态网站制作指南

热度:

2007-6-10 11:36:16


问:在Windows 2000 Server上,当一个站点需要SSL时,我怎样才能在相同的站点上使用主机头?
 
答:  让我们回顾一下SSL和主机头的问题,因为对IIS来说,它的问题一直在常见问题解答的头五个中。
当 客户发出一个到IIS服务器的HTTP连接请求时,这个客户的请求包括一个叫做HOST:的字段,它包括了URL中的Web服务器请求。例如,如果你的请 求将http://www.microsoft.com作为目的地,则浏览器将其发送到服务器,并一同提交HTTP头中的其它信息,HOST: http://www.microsoft.com。因为此字段的名称是“HOST”,并且它在客户的HTTP头中,所以我们把它称作“主机头”。
如果客户请求建立一个SSL连接,主机头字段仍然会包括在请求当中,只不过它被包含在这个包的加密部分里(在应用层中),因此Web服务器无法对其进行解密,以确定应该将请求发送到哪一个Web站点。
这就产生了一条定律:当使用SSL时,不能使用主机头来作为识别一个Web站点的主要手段。
如果你确实想使用带有主机头的SSL,那么会发生什么情况呢?考虑一下这个情况。你有两个Web站点,其中一个不使用主机头,另一个则使用。两个站点都使用相同的IP地址,并且都配置成使用证书。当你利用SSL访问使用主机头的站点时,第一个Web站点会对此做出响应。之所以发生这种情况是因为:我们使用 IP地址来识别你希望用来建立连接的站点,而不是主机头。因为第一个站点对IP地址和HTTPS有反应,所以它接受了请求。如果第一个Web站点需要主机头,并且在不同的IP地址上,或者没有证书,那么连接将会失败。
因此,请考虑你的配置,在你需要SSL的相同站点上,只要不使用主机头,你就可以做任何想做的事情。
问:如何在Microsoft Windows XP Home Edition中安装IIS 5.0?

首先需要说明一点,就是这种做法可能会有风险,因此在你实际操作之前,最好明确你的行为会带来什么后果。并且经过这样处理安装的IIS在运行上可能存在某种未知的缺陷。还有,同Professional版的XP一样,在Home版上运行的IIS也有10个并发连接的限制。在同一个时间内,最多只能有10个人使用你提供的IIS服务。如果你还想继续,那么就往下看吧。
准备条件:一张Windows 2000 Professional的光盘(假设光驱是F盘)。
首先在运行中输入"c:windowsinfsysoc.inf",系统会自动使用记事本打开sysoc.inf这个文件。在sysoc.inf中找到" [Components]"这一段,并继续找到类似"iis=iis.dll,OcEntry,iis.inf,hide,7"的一行字,把这一行替换为 "iis=iis2.dll,OcEntry,iis2.inf,,7"。之后保存并关闭。
把Windows 2000 Professional的光盘插入光驱,同时按下Shift键禁止光驱的自动运行。在运行中输入"CMD"然后回车,打开命令行模式,在命令行下输入下列的两条命令,在每一行命令结束后回车:
  Expand d:i386iis.dl_ c:windowssystem32setupiis2.dll
  Expand d:i386iis.in_ c:windowsinfiis2.inf
“Web 匿名用户”帐户密码的位置
问:我们希望向“Web 匿名用户”帐户授予从其他系统上读取信息的访问权;可是,我们不知道该帐户的密码。怎样才能获得该密码呢?
答: IUSR_ 帐户就是“Web 匿名用户”帐户,它是在 IIS 的安装过程中创建的。该密码存储在本地 SAM 中(对于 Windows 2000 域控制器而言存储在 Active Directory 中),Metabase 中也存储着该密码。由于该密码存储在 Metabase 中,您就可以使用一个 .vbs 脚本将 IUSR 和 IWAM 这两个帐户的密码提取出来,方法如下:
Dim IIsObject
Set IIsObject = GetObject ("IIS://localhost/w3svc")
WScript.Echo "AnonymousUserName = " & IIsObject.Get("AnonymousUserName") & vbCrlf & _
"AnonymousUserPass = " & IIsObject.Get("AnonymousUserPass") &vbCrlf &vbCrlf &_
"WAMUserName = " & IIsObject.Get("WAMUserName") & vbCrlf & _
"WAMUserPass = " & IIsObject.Get("WAMUserPass")
Set IIsObject = Nothing
注: 通过此脚本可以显示在主属性级别上针对 Web 服务设置的 IUSR 和 IWAM 帐户密码。如果您已将匿名验证配置为使用另外一个用户帐户来访问网站或目录,那么您必须相应地修改该脚本,以反映所做的更新。
如何在不同计算机之间移动 Metabase
问:有没有文档资料记录 IIS 4.0/5.0 中针对不同计算机的密钥?如果我需要将 Metabase 从一台计算机移到另一台计算机上,应该采用哪种方法?我读了 IISSync 实用工具的说明文档,但不能解决我的问题。我在找一种类似于 MergeINI 文件这样的工具。
答:IIS 4 和 IIS 5 均使用 %systemdir%/system32/inetsrv 中的 metabase.bin 来存储 IIS 配置信息。Metabase 的密钥是针对安装 IIS 的计算机设置的,所以您不能简单地在不同系统间移动 Metabase。正如 2001 年 11 月这一期的 IIS 有问必答专栏 (http://www.microsoft.com/technet/columns/insider/iisi1101.asp) 中指出的那样,您可以使用 Metaedit 2.2 (http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe) 从 IIS 4 或 IIS 5 中导出 Metabase,然后再将这些设置导入另一个系统。导入后仍需确保导入系统中的设置正确无误。例如,如果您的 Web 站点主目录位于驱动器 D 上,而您使用 Metaedit 将 Web 站点导入一个新系统中的驱动器 E 上,就会导致 IIS 找不到站点内容。
另一个可用于迁移 Metabase 的实用工具是 IIS Export。这是一个非常实用的迁移工具,位于以下网址:http://www.adsonline.co.uk/IISExport。这个共享件实用 工具可以复制文件和权限,并将 Metabase 存储在一个数据库中,以便将配置信息应用到多个系统中。
最后,还可以借助 IIS Migration Tool。该实用工具属于 Windows 2000 资源工具包的一部分,可以从 http://www.microsoft.com/serviceproviders/downloads/migration_toolsP65238.asp 下载。该工具可以通过端口 80 传送 Metabase、文件和权限,但最多传送 4GB 的数据。尽管不支持它作为资源工具包的一个实用工具,但该工具还是非常有用的。
可用于排除 SMTP 服务故障的资源

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

我来说两句:

1分 2分 3分 4分 5分
姓名: *


* 请各位网友遵纪守法并注意语言文明。
网站简介 | 联系方式 | 意见建议 | 版权说明
Copyright © 2007 All rights reserved
滇ICP备06006992号