IIS是使用非常广泛的Web平台,通过它搭建Web站点是比较简单的。但是,在使用的过程中由于IIS设置不当或者其它原因使得Web不能正常运行,这是非常普遍的。作为Web管理员,掌握必要的排错技巧解决IIS故障显得尤为重要。
  1、客户端的IP地址被拒绝
  当IIS部署完成Web成功发布后却被告知某些用户无法访问Web页面,当他们访问Web站点的时候,浏览器显示错误页,错误提示为“HTTP错误403.6-禁止访问:客户端的IP地址被拒绝”。
    IIS排错技巧
图1

    
    之所以会显示上面的错误提示,这是由于IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示。该功能可以可以加强Web的 安全限制IP对Web的访问,有时由于管理员的疏忽会将某些本来应该访问的IP设置为禁止的话就会造成这样的错误。
  解决方法是:运行“IIS管理器”进入相应站点的属性页面,在“目录 安全性”选项卡页面的“IP地址和域名限制”下点击“编辑”进入“IP地址和域名限制”页面,然后根据需要对IP进行授权。需要说明的是,如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址。反之则可以只允许某些IP地址的访问。
   IIS排错技巧
图2
2、访问由于ACL对所请求资源的设置被拒绝
  客户端访问web站点,显示错误页:您不具备查看该目录或页面的权限,因为访问控制列表 (ACL) 对 Web 服务器上的该资源进行了配置。错误提示为“HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。”
   IIS排错技巧
图3

    
    这是对Web目录的权限设置不当造成的,我们知道Web客户端的用户隶属于user组。因此,如果在Web目录的NTFS权限中没有赋予users的读取权限就会导致页面无法访问。
  解决方法是:打开IIS管理器,找到Web目录,右键“属性”在“安全”选项卡下添加users组,然后赋予其“读取和运行”、“列出文件夹目录”及“读取”权限。
    IIS排错技巧
图4
3、不具备使用所提供的凭据查看该目录或页的权限
  客户端访问Web站点,显示错误页:您不具备使用所提供的凭据查看该目录或页的权限。错误提示为:HTTP错误401.1-未经授权:访问由于凭据无效被拒绝“HTTP错误401.1 - 未经授权:访问由于凭据无效被拒绝。
    IIS排错技巧
图5

    
    我们知道客户端访问Web站点使用的是IUSR帐户,该用户用于匿名访问,因此如果此账号被禁用,将造成用户无法访问。
  解决方法是:“开始→运行”输入lusrmgr.msc打开“本地用户和组”工具,然后双击“用户”中的“IUSR_LW-SERVER”(LW-SERVER是 服务器名称,因机而异),取消对“帐户已禁用”的勾选最后“确定”退出即可。
    IIS排错技巧
图6 
4、不允许的父路径
  客户端访问Web站点弹出错误页,显示类似“Active Server Pages 错误 'ASP 0131' 不允许的父路径 /BBS/Admin/BbsFace.asp,行 1 包含文件 '../conn.asp' 不能用 '..' 表示父目录”的错误提示。
    IIS排错技巧
图7

    
    如图7所示,出现这样的错误提示是因为在asp等动态Web页面中需要调用诸如../格式的语句,即返回到上一层目录,而IIS6.0出于安全性考虑默认是不允许这样的。解决这一IIS错误的方法是:打开IIS管理器,找到Web目录,右键“属性”在“主目录”选项卡下点击“配置”打开“应用程序配置”窗口,单击“选项”标签,勾选“应用程序配置”下的“启用父路径”即可。

    IIS排错技巧
图8
5、文件或目录未找到
  当客户端访问Asp动态Web站点时,提示“无法找到该页”,IIS错提示为“HTTP错误404-文件或目录找到”。
    IIS排错技巧
图9

    
    如图9所示,出现这样的错误提示并不是因为Web站点的文件或者目录不存在,而是IIS不能解析ASP所致。在IIS6.0中新增了Web程序扩展这一选择,我们可以在其中对ASP、ASP.net、CGI、IDC等程序进行允许和禁止操作。在默认情况下“Active Server Pages”扩展是禁止的,因此会造成上面的IIS错误。解决的方法是:打开IIS管理器点击左侧的“Web 服务扩展”,然后选择“Active Server Pages”允许即可。
    IIS排错技巧
图10
6、内部服务错误
  客户端访问Web站点提示“HTTP 500 - 内部服务器错误”,这样的IIS错误提示不是很频繁但排错比较麻烦困扰了很多人。其原因是由IWAM帐号不同步造成的,IWAM账号是安装IIS时系统自动建立的一个内置账号。IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。系统对IWAM账号的密码同步工作有时会失效,导致IWAM账号所用密码不统一。
    IIS排错技巧
图11

    
    解决办法是:如果存在AD(活动目录),选择开始→程序→管理工具→Active Directory用户和计算机为IWAM账号设置密码。然后打开命令提示符(cmd.exe)进入c:\Inetpub\AdminScripts目录然后执行命令:adsutil SET w3svc/WAMUserPass test (test为密码,大家可以自行设置)。然后同步IIS metabase数据库密码同样在命令行下运行synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码。
    IIS排错技巧
图12
7、身份认证配置不当
  访问Web站点提示不具备使用所提供的凭据查看该目录或页的权限,错误标识为“HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝”。
    IIS排错技巧
图13

    
    这一IIS故障是由身份验证造成的。IIS支持多种Web身份验证方法,有基本身份验证、 Windows 集成身份验证、摘要身份验证、.NET Pawwport身份验证。这些验证有不同安全级别适用于不同的安全需求,如果设置不当就会造成错误。一般为匿名身份认证,这是大多数站点使用的认证方法。
  解决办法是,打开IIS管理器,找到Web目录,右键“属性”打开站点属性窗口,在“目录安全性”标签的“身份验证和访问控制”下点击“编辑”打开“身份验证方法”面板,然后根据安全需求选择相应的验证方法。如果是一般的站点我们就选择“启用匿名访问”即可。
    IIS排错技巧
图14
8、附件太大,无法上传
  让在网站的后台上传文件文件,当超过200k的时候会无法上传。这是因为在IIS6.0中,对文件的上传进行了严格的限制,这样这样可以最大限度地减少因以前太宽松的超时和限制而造成的***。数据库属性配置最大ASP大小为204,800 个字节,并将各个字段限制为100 KB。在IIS 6.0 之前的版本中,没有限制。
  这就造成了文件上传不能超过200k,而事实上是提交数据不能超过200k,你可以发一个很长的帖子试试,也会出现这个错误。
  解决方法是:首先“开始→运行”输入services.msc打开服务管理器关闭“iis admin service”服务。接下来找到找到windows\system32\inesrv\下的metabase.xml用记事本打开,通过记事本的“编辑→查找”功能找到ASPMaxRequestEntityAllowed其默认值为204800,即200K,把他修改为需要的值,最后重新启动“iis admin service”服务即可。
    IIS排错技巧
图15

    
     9、某些类型文件无法 下载
  客户端无法 下载Web站点中的某些类型的文件,错误提示为“HTTP 错误 404 - 文件或目录未找到”。造成这一错误的原因是IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端 下载出错。(图16)
   IIS排错技巧
图15
解决办法是:打开IIS管理器,找到Web目录,右键“属性”打开站点属性窗口,在“HTTP头”选项卡下点击“MIME类型”按钮然后“新建”添加相应的文件扩展名。
    IIS排错技巧
图17
    
    总结:由于IIS的复杂性及其特殊情况使得IIS错误相当多样,本文不可能一一列举。上面的列举的9个排错案例占了IIS错误的绝大多数,理解错误产生的原因并掌握排错技巧就足能应对IIS故障。当然,对于此外的其它IIS错误,只要结合实践深入探究就能够找到排错方法。