IIS下ASP无法访问

    M$的Internet Information Server(IIS)是很多朋友都用过Web服务器,几乎用Windows OS的网站主机都是用它来搭建Web Site,用以提供ASP动态页面的服务。
    用到它的朋友可能会碰到这样一种情况,就是某天IIS突然不能访问ASP页而只能访问HTML页面了,当访问ASP页面时报HTTP500错误,让人心烦不已。今天我总算在网上找到了解决的办法,并如法炮制一番就搞定它了。
     出错原因:
       
其实该错误是因为IIS在某些时候同步IIS进程的启动帐号IWAM_$NAME ( 该NAME一般为OS的NETBIOS NAME ) 造成的。IIS的启动帐号默认为IWAM_$NAME,该帐号的密码相信用过IIS的人没有多少去关心的,因为它由系统自身同步,但是WINDOWS有太多不尽如人意的地方,该同步过程有时会发生错误造成同步失败,导致IWAM_$NAME帐号在启动Internet 信息服务进程之外的应用程序的时候验证失败,Asp页面因为没有相关的解析进程支持而无法访问,出现HTTP 500错误。
    解决办法:
        默认安装下C:\Inetpub\AdminScripts目录下有个adsutil.vbs文件,这是IIS自带的修改IIS配置的脚本文件,功能不可小视。这里用到以下功能:
        获取 IUSR 帐户密码
        cscript.exe adsutil.vbs get w3svc/anonymoususerpass 

        获取 IWAM 帐户密码
        cscript.exe adsutil.vbs get w3svc/wamuserpass 

        设置 IUSR 帐户密码
        cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password" 

        设置 IWAM 帐户密码
        cscript.exe adsutil.vbs set w3svc/wamuserpass "password"

注意:adsutil.vbs中的IsSecureProperty变量值为TRUE时,返回星型密码,为FALSE时显示明文密码。可手动更改。
        具体步骤就是先在用户管理器中设置密码,然后再用脚本设置IIS密码,以实现同步。也可以先用脚本获得密码,再将密码设置到用户。依此方法一般可以实现手动同步,恢复ASP页面访问。 
        自动同步脚本:
net user IWAM_%USERDOMAIN% network
Cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/wamuserpass "network"
@IF %errorlevel% EQU 0 Echo.&Echo.&Echo 啦啦啦啦啦啦啦啦啦 用户IWAM_%USERDOMAIN%的密码在IIS配置数据库中同步成功!&Echo.
@Cscript.exe C:\Inetpub\AdminScripts\synciwam.vbs -v
@IF %errorlevel% EQU 0 Echo.&Echo.&Echo 啦啦啦啦啦啦啦啦啦 用户IWAM_%USERDOMAIN%的密码在Microsoft Transaction Server或组件服务中同步成功!&Echo.
@CMD /k
posted @ 2005-07-19 13:44  Eric-Liu  阅读(2621)  评论(0编辑  收藏  举报