IIS操作失败的可能因素
操作失败的可能因素
大多数操作失败的原因不外乎下列几种:网络连接故障,防火墙设置不当,IIS 权限问题。一般而言,网络故障容易发现。举例来说, 如果你的网络不能传输任何数据,那么问题极有可能出在网络硬件上。如果本地网络正常,从外面却不能访问你的网站,那么就该查查端口80是不是被防火墙禁止了,只要作个简单的端口扫描(port sniffing)就明确了。
我打算根据人们对本文的回应情况重新撰写一篇完整的故障诊断指南。然而本文仅仅讨论由于权限问题引起的 IIS 的操作失败。
建立安全日志
IIS 连接故障的诊断,第一步是对故障的现象有个清楚的了解。此时经常需要查看你的事件日志。然而,你得先做一些设置,否则事件日志里的信息对你毫无用处。
既然这里讨论的是与权限有关的 IIS 操作故障,那么我们势必要用到安全日志。因此先得重新配置安全日志:告诉 IIS 我们要记录什么,然后停止 IIS ,再清空安全日志,最后重新启动 IIS 服务。也许你会奇怪:为什么要停止 IIS 服务?因为 IIS 有时把安全日志记录写入 cache (缓存)。如果不重新启动 IIS ,那么当你清空日志以后,cache 中的记录马上又会被写入。很明显,这种信息将被误认为当前记录而将你引入歧途。因此,我强烈推荐停止并重新启动 IIS 服务。
现在开始设置 IIS。首先,进入 Program | Administrative Tools | Computer Management。然后,找到Services and Applications | Internet Information Services。展开 Internet Information Services 项显示网站。在有问题的网站名称上点右键,选取 Properties 打开属性页,现在,点属性页中的 Web Site 项,选中 Enable Logging 项以开启日志。此时,你会看到一个列表让你选择日志文件格式。我推荐使用 W3C Extended 格式,点 Properties 按钮,选 Extended Logging Properties (扩展日志属性页)。
默认情况下,属性页中的 General Properties (一般属性) 已被选中。在这里可以设定隔多久产生新的记录文件,这个值的大小无所谓,自己选吧。扩展属性页比较重要。在这里你可以选择哪些信息需要保存到日志里。你可以自由选择,但是至少应该包括如下几项:
Date (日期),Time (时间),Client IP Address (客户 IP 地址),User Name (用户名),Method (方法),HTTP Status (HTTP 状态)和 Win32 Status (Win32 状态)。
选择完毕以后,点 OK ,再点 OK ,就可以回到计算机管理界面了。
既然已经配置好了网站记录选项,我们就来清空cache (高速缓存) 和日志记录吧。第一步:停止所有的 IIS 服务。方法是:进入 DOS 命令提示方式(Program | Accessories | Command Prompt),在 DOS 提示窗口中键入命令:
NET STOP IISADMIN/Y
只需这一个命令就能停止所有的 IIS 服务。完成后,离开 DOS 提示窗口,进入 Programs | Administrative tools | Event Viewer (事件查看器)。在 Security Log (安全日志) 上点右键,选 Clear All Events (清除所有事件)。好,现在已经清空了 cache 和安全日志,可以重起 IIS 了。回到 DOS 提示窗口,键入4行命令:
NET START W3SVC
NET START MSFTPSVC
NET START NNTPSVC
NET START SMTPSVC
注意了,这些命令不是对每个人都需要的。例如,举例来说,如果你没有运行 FTP 服务,那么你就不必键入与 FTP 有关的命令(译者注:W3SVC - WEB ,MSFTPSVC - FTP,NNTPSVC - NNTP,SMTPSVC - SMTP)。
检查安全日志
现在你已经设置好了安全日志,可以创建日志项了。试着访问有故障的网站。我建议,如果可能的话,尝试从公司内部和外部,从许多人的机器上访问它。因为这样可以得到许多有用的日志记录,通过对它们的比较分析可以大大帮助找出问题的根源。也许,你会发现只有从公司内部能够访问,而从外部不行;或者,只有授权用户能够访问,而匿名用户不行。等等。