《一》解决IIS的“Server Application Error”故障
一、启动MSDTC 服务
WIN+R,运行cmd 后输入:net start msdtc
如果显示“distributed transaction coordinator 服务不能启动”,就把C:/WINDOWS/system32/dtclog 这个目录重命名(如果有的话,没有就直接省去这一步),然后重新建立该目录。
然后在命令行下输入:msdtc -resetlog ,再输入net start msdtc ,显示服务启动成功。
二、设置“IUSR_”和“IWAM_”密码
打开开始-所有程序-管理工具-计算机管理-本地用户和组 ,分别给“IUSR_机器名”和“IWAM_机器名”两个用户设置密码,两个要是一样的,这里简单点比较好。
三、同步IIS配置数据库密码
为了确认第二步的密码是否一致,这里需要分别查看“IUSR_”和“IWAM_”的密码。
WIN+R,运行cmd后输入:cd c:/inetpub/adminscripts
获取IWAM 帐户密码命令:cscript.exe adsutil.vbs get w3svc/wamuserpass
获取IUSR 帐户密码命令:cscript.exe adsutil.vbs get w3svc/anonymoususerpass
输入以上命令,按回车就可查看IWAM 和IUSR 各自的密码,确认是否一致,如果两个密码不一致,则修改之:
修改IWAM 帐户密码:cscript.exe adsutil.vbs set w3svc/wamuserpass “password”
修改IUSR 帐户密码:cscript.exe adsutil.vbs set w3svc/anonymoususerpass “password”
其中“password” 设置为你想修改的密码,即与第二步中设置的“IWAM_”密码相同,按回车即可修改完成。
这里应该注意的是,修改密码前请一定停止所有的Internet 信息服务,否则后面可能会出错,并且IWAM 帐户可能会被锁定。
四、更改组件服务中的密码
WIN+R,运行cmd 后输入:cd c:/inetpub/adminscripts
然后输入:cscript.exe synciwam.vbs -v
最后重启IIS:iisreset
到了第四步操作后基本就OK了,到http://localhost/ 去试试?如果依然不行的话,还有第五步 :
在cmd 下运行(每行分别为单独命令,分三次输入并回车执行)
cd %windir%/system32/inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll
关闭所有的IE窗口后再试一下
《二》 网友写的一个iis.bat文件内容(将下面内容复制到 iis.txt 文本下。再将iis修改为iis.bat)
@echo off
echo *
echo *
echo ****************************************************
echo * *
echo * IIS Server Application Error错误自动修复批处理 *
echo * 作者:hayden *
echo * 博客:www.mysuc.com *
echo * *
echo ****************************************************
echo *
echo *
set /p isok0=开始IIS修复?(y/n)
if %isok0%==y goto begin
goto forend
:begin
set userIWAM=IWAM_%COMPUTERNAME%
set userIUSR=IUSR_%COMPUTERNAME%
:checkIWAM
net user %userIWAM%
if %errorlevel%==0 goto checkIUSR
goto netuserIWAM
:checkIUSR
net user %userIUSR%
if %errorlevel%==0 goto edituser
goto netuserIUSR
:netuserIWAM
net user
set /p tiwam=请输入正确的“启动 IIS 进程帐户”名称(即以IWAM_开头的帐户名称)?
set userIWAM=%ans%
goto checkIWAM
:netuserIUSR
net user
set /p tiusr=请输入正确的“Internet 来宾帐户”名称(即以IUSR_开头的帐户名称)?
set userIUSR=%tiusr%
goto checkIUSR
:edituser
echo 重置“启动 IIS 进程帐户”密码为123
net user %userIWAM% 123
echo 重置“Internet 来宾帐户”密码为123
net user %userIUSR% 123
echo 密码同步
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/adsutil.vbs set w3svc/wamuserpass 123
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/adsutil.vbs set w3svc/anonymoususerpass 123
echo *
echo *
set /p isok1=请测试IIS是否正常?(y/n)
if %isok1%==y goto forend
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/synciwam.vbs -v
iisreset
echo *
echo *
set /p isok2=请测试IIS是否正常?(y/n)
if %isok2%==y goto forend
echo 清除MSDTC服务注册表相关信息
reg delete HKLM/SYSTEM/CurrentControlSet/Services/MSDTC /f
reg delete HKLM/SOFTWARE/Microsoft/MSDTC /f
reg delete HKCR/CID /f
echo 停止并重新安装MSDTC服务
net stop msdtc
msdtc -uninstall
msdtc -install
echo 重置“启动 IIS 进程帐户”与“Internet 来宾帐户”密码
net user %userIWAM% 123
net user %userIUSR% 123
echo 同步IIS metabase中IWAM_MYSERVER的密码
%HOMEDRIVE%/Inetpub/Adminscripts/adsutil.vbs set w3svc/wamuserpass "123"
echo 同步COM+应用程序所用的IWAM_MYSERVER密码
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/synciwam.vbs -v
echo *
echo *
set /p isok3=请测试IIS是否正常?(y/n)
if %isok3%==y goto forend
echo 重新注册相关组件
rundll32 %windir%/system32/inetsrv/wamreg.dll, CreateIISPackage
regsvr32 %windir%/system32/inetsrv/asptxn.dll /s
echo *
echo *
set /p isok4=请测试IIS是否正常?(y/n)
if %isok4%==y goto forend
echo *
echo *
echo 如果IIS还不正常的话,我真的解决不了唉,请另请高明吧!
:forend
echo *
echo *
@echo 批处理执行完毕,请按任意键退出?
@echo off
pause
《三》出现了“访问 IIS 元数据库失败”的错误信息,最后经过搜索发现了解决问题的方法。解决方法如下:
1、依次点击“开始”-“运行”。
2、在“运行”栏内输入
“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i ”(不含引号),然后点“确定”按钮。
3、出现的cmd窗口中显示“开始安装ASP.NET XXX”等内容,等待这个窗口自动关闭。
好了,到这里一般问题就解决了,如果尚未解决请参考下面的文章。来源:互联网 。
------------------------------------
装了VS2005再装IIS,结果出了些小问题
访问IIS元数据库失败
思考可能是次序出了问题,解决
1、打开CMD,进入 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727
2、输入 aspnet_regiis.exe -i
稍等片刻,注册成功就解决问题了。
接着还会出现“未能创建 Mutex”的问题
解决方法:
1、先关闭你的VS2005。
2、打开 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary
ASP.NET Files 找到你刚才调试的程序的名字的目录删除它。
3、关闭IIS服务器 ,重开一次。
4、用IE浏览一下你的程序,问题解决。