日期:2009-05-10  浏览次数:21086 次

IIS 故障及解决一例  
作者:不详        来源:网络       
       
    本人曾经遇到过IIS中身份验证同时ASP程序不能运行的情况,由于问题比较有代表性,所以总结了一下,拿出来,希望能为大家以后在遇到类似问题时提供一个参考。
问题及解决:
当配置完服务器后,打开网站时,总要出现验证的对话框。根据惯例,先想想在配置服务器时做了什么改动:
1、设置了组策略
帐户策略
a.密码必须符合安全性要求
b.密码长度最小值为8

帐户锁定策略
a.帐户锁定阈值

2、安装了IIS Lockdown2.1 工具


因为验证部分都是在IIS->目录安全性->验证方法中配置的,所以一开始重点排查那里,在默认情况下,验证方法的配置应为:
1、[选中]匿名访问
2、[未选]基本验证
3、[选中]集成Windows 验证
没有问题,然后点击匿名访问下方"编辑"按钮检查匿名访问的配置,默认情况下
1、用户名为IUSR_computername (computername与机器名相同)
2、密码应为灰色不可输入。
3、[选中]允许IIS控制密码
经比较后没发现什么问题,由于IUSR_computername的帐户密码是自动创建的,会不会是因为密码不匹配引起的?于是,在计算机管理中重新设了符合安全规定的密码,然后在返回到“编辑”中,先移去允许IIS控制密码,然后在可用的密码框中输入刚刚设定的密码,再选中"允许IIS控制密码",测试,搞定!不再出现输入密码的提示框了。
然而新的问题出现了,每当用户访问ASP页面时,就会出现500的错误,而显示文本页面则没有类似的问题,一开始以为只是程序的问题,于是在站点根目录下创建一空白文本文件,改名为ASP文件,依然出现500的错误。

感觉到IIS Lockdown的可能性最大,所以我首先把重点放到了它的配置上,打开站点->主目录->应用程序配置->应用程序映射 后看到.asp 文件映射无误(asp.dll)。

检查日志时发现,dllhost.exe的进程(IIS进程)不能启动,而dllhost.exe 是由IWAM_computername 来控制的,所以再次打开“计算机管理”,查看IWAM_computername用户,惊奇的发现原来帐户被锁定了,取消锁定,OK! 可以正常浏览ASP程序了。

说明
本文是为前两天在配置服务器时解决问题的一个总结,由于当时是在凌晨2点左右处理的,没有做好记录,所以中间的某些过程写的不太详细,希望大家谅解。