因为工作的需要,开始学习Asp.net,安装完IIS后,出现了让人心酸的问题:
Server application Error
The Server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact theServer administrator for assistance.
不过有部分的提示是这样的:
Server application Error
while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the Server administrator for assistance.
整理了一下Server application Error解决方案,修正了命令中涉及到路径的问题,使用本文中的命令,将不需要理会路径问题:
1、右键点击我的电脑 --> 管理 --> 本地用户和组 --> 用户,在右侧给“IUSR_机器名”和“IWAM_机器名”两个用户均设置密码为123;
2、开始 --> 运行 --> cmd ,然后依次在命令行窗口输入以下命令(一行一行的输入);
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/adsutil.vbs set w3svc/wamuserpass 123
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/adsutil.vbs set w3svc/anonymoususerpass 123
网上说这里需要去查看一下IIS正常没,不过这问题我好像以前也碰到过,这一次依然一样,到这里90%还是问题依就。
那我们就继续操作。
cscript.exe %HOMEDRIVE%/Inetpub/Adminscripts/synciwam.vbs -v
iisreset
操作到这里后,我这儿提示 error:8004e00f ,属于MSDTC服务异常。如果没有这种提示,那么恭喜你啦,你修复成功了。
我们继续操作:
3、删除注册表中的键:
· //HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC
· //HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC
· //HKEY_CLASSES_ROOT/CID
4、继续在刚才的CMD窗口中,键入命令(停止并重新安装MSDTC服务):
net stop msdtc
msdtc -uninstall
msdtc -install
5、重新按第一步的说明操作(设置2个系统用户的密码);
6、CMD命令,同步IIS metabase中IWAM_MYServer的密码:
%HOMEDRIVE%/Inetpub/Adminscripts/adsutil.vbs set w3svc/wamuserpass "123"
7、CMD命令,同步COM+应用程序所用的IWAM_MYServer密码:
cscript %HOMEDRIVE%/Inetpub/Adminscripts/synciwam.vbs -v
操作到这里后,我这儿虽说没有8004e00f的错误提示,但测试过IIS,问题依旧啊,访问页面还是Serverapplication Error
还得继续操作:
检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,一般都没问题的。
继续在CMD下执行以下命令:
runDLL32 %windir%/system32/inetsrv/wamreg.DLL, CreateIISPackage
regsvr32 %windir%/system32/inetsrv/asptxn.DLL /s
到这里大功告成!
OK,asp页面一切正常了
下面附上批处理的文档
@echo off
echo *
echo *
echo ****************************************************
echo * *
echo * IIS Server Application Error错误自动修复批处理 *
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