邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

IIS出现server application error-便捷解决方法

来自:种豆 时间:2017-12-29 阅读:662次 原文链接
安装好IIS后,运行asp文件,出现Server Application Error,具体提示信息如下:

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 the server 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.

解决办法一(便捷操作在解决办法二)

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
cscript.exe %HOMEDRIVE%\Inetpub\Adminscripts\synciwam.vbs -v
iisreset

    操作到这里后,如果没有任何提示,那么恭喜你啦,你修复成功了。但我这儿提示error:8004e00f,属于MSDTC服务异常(进入事件查看器,发现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

    这三个命令执行后,在事件查看器中msdtc服务已经正常启动(这步很关键,如果没有,重新启动下电脑看看)

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,问题依旧,访问页面还是Server application Error,还得继续操作:

  检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,一般都没问题的。
    如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。

8、继续在CMD下执行以下命令:

runDLL32 %windir%\system32\inetsrv\wamreg.DLL, CreateIISPackage
regsvr32 %windir%\system32\inetsrv\asptxn.DLL /s

到这里大功告成!不用重启,Asp页面一切正常了。

解决办法二

1、将以下内容拷贝粘贴到记事本,保存为批处理文件(.bat,如IIS.bat) ,执行保存的批处理文件,按提示操作即可:

@echo off
echo *
echo *
echo ****************************************************
echo *                                                  *
echo *  IIS Server Application Error错误自动修复批处理  *
echo *  作者:hayden                                    *
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

文章整理自“烦恼's BLOG mysuc.com”

 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3371650278进行处理
sowsoy.com 版权所有 Copyright©2010-2020 浙ICP备10212932号
Email:sowsoy#hotmail.com