网络通信 频道

IIS 操作失败诊断指南

介绍

  自己辛辛苦苦建起来的网站无法访问,的确令人沮丧。不过别担心,本文将会指导你找到故障的根源。

  操作失败的可能因素

  大多数操作失败的原因不外乎下列几种:网络连接故障,防火墙设置不当,IIS 权限问题。一般而言,网络故障容易发现。举例来说, 如果你的网络不能传输任何数据,那么问题极有可能出在网络硬件上。如果本地网络正常,从外面却不能访问你的网站,那么就该查查端口80是不是被防火墙禁止了,只要作个简单的端口扫描(port sniffing)就明确了。

  我打算根据人们对本文的回应情况重新撰写一篇完整的故障诊断指南。然而本文仅仅讨论由于权限问题引起的 IIS 的操作失败。

  建立安全日志

  IIS 连接故障的诊断,第一步是对故障的现象有个清楚的了解。此时经常需要查看你的事件日志。然而,你得先做一些设置,否则事件日志里的信息对你毫无用处。

  既然这里讨论的是与权限有关的 IIS 操作故障,那么我们势必要用到安全日志。因此先得重新配置安全日志:告诉 IIS 我们要记录什么,然后停止 IIS ,再清空安全日志,最后重新启动 IIS 服务。也许你会奇怪:为什么要停止 IIS 服务?因为 IIS 有时把安全日志记录写入 cache (缓存)。如果不重新启动 IIS ,那么当你清空日志以后,cache 中的记录马上又会被写入。很明显,这种信息将被误认为当前记录而将你引入歧途。因此,我强烈推荐停止并重新启动 IIS 服务。小虫网络技术http://www.chinaccna.com

  现在开始设置 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)。
检查安全日志

  现在你已经设置好了安全日志,可以创建日志项了。试着访问有故障的网站。我建议,如果可能的话,尝试从公司内部和外部,从许多人的机器上访问它。因为这样可以得到许多有用的日志记录,通过对它们的比较分析可以大大帮助找出问题的根源。也许,你会发现只有从公司内部能够访问,而从外部不行;或者,只有授权用户能够访问,而匿名用户不行。等等。

  当你整理安全日志项目时,我推荐你首先看看错误代码为 401 和 403 的日志项目。代码为 401 和 403 的错误有很多。但是一旦有了确切的代码,你就得到了极为重要的线索。下面列出许多 401 和 403 错误及其含义:

  401;1 非法操作:登录失败

  401;2 非法操作:服务器设置错误导致的登录失败

  401;3 非法操作:使用控制列表 (ACL) 项目

  401;4 非法操作:IIS 过滤器阻止存取

  401;5 非法操作:ISAPI 或 CGI 应用程序

  403;1 操作禁止:没有执行权限

  403;2 操作禁止:没有读取权限

  403;3 操作禁止:没有写入权限

  403;4 操作禁止:要求 SSL

  403;5 操作禁止:要求 128位 SSL

  403;6 操作禁止:IP 地址被拒绝

  403;7 操作禁止:要求客户证书

  403;8 操作禁止:拒绝存取站点

  403;9 操作禁止:当前连接的用户太多

  403;10 操作禁止:设置错误

  403;11 操作禁止:密码不正确

  403;12 操作禁止:要求有效的客户证书

  403;13 操作禁止:客户证书已作废

  403;14 操作禁止:拒绝列目录

  403;15 操作禁止:超过许可的客户数目

  403;16 操作禁止:客户存取证书非法或尚未认证

  403;17 操作禁止:客户存取证书过期或尚未升效

  试试看,从你的安全日志中找到 401 和 403 错误,跟上述列表对照一下,或许能有帮助呢?如果还是没找到原因,请看下一节。那里将讨论特殊的权限问题和解决办法。

  连接失败的其他可能因素

  如果问题还是没有解决,那么就要考虑 IIS 的提示信息是否正确了。

 

转载地址:http://www.chinaccna.com/networky/gli/200611/26442.html

0
相关文章