今天在查看电脑里的图片时发现了这组图片,是关于解决安装IIS后出现HTTP500内部服务器错误问题的一组捕捉图片,应该说我安装IIS也有好多次了,每次安装完后都要出现这个问题,奇怪的是,虽然是同一个问题,可是解决的方法却各不相同,当时有想写下来的想法,所以去年在操作的时候把过程捕捉下来了,后来不知怎么把这事忘记了,既然今天又把它重新翻出来了,那待我好好想一想把它写下来吧。呵呵~由于时间长了有点忘记当时的操作过程了:
记得当时想在电脑上浏览自己做的一个小网站,因为电脑重装了系统,以前装好的都没了,所以必须重装IIS(那时装的是5.1版)安装好后先看了几个静态的html网页,显示正常,再浏览网站文件夹里index.asp,打开来的是下面(图1)那个界面,
这是友好提示的http错误信息,如果打开IE,选择工具——internet选项——高级——取消"显示http友好错误提示\"的复选框,网页会显示下面的出错提示:
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
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.
(大致意思是:服务器应用程序错误——该服务器遇到一个错误,同时装载在您的请求处理的申请。请参阅事件日志的详细信息。请联系服务器管理员求助!)
于是我打开事件查看器,查看日志见很多MSDTC服务和设备的错误,错误日志如下(图2)
根据在网上资料判断是帐户不同步引起的,于是按如下步骤来同步密码:
1)右键单击 我的电脑---->管理---->本地用户和组---->用户
右键单击 启动IIS进程帐号 IWAM_**** (注:****一般是计算机名)点击设置密码,设置为一个你想要的密码。
右键单击 启动IIS进程帐号 IWAM_**** (注:****一般是计算机名)点击设置密码,设置为一个你想要的密码。
2)同步IIS 配置数据库密码:
此处命令有二种,一种可以查看密码,一种是修改密码:
此处命令有二种,一种可以查看密码,一种是修改密码:
a.你可以利用查看密码命令查看 IWAM密码,然后把第一步中用户IWAM密码设置为与 查看到的IIS配置数据库密码 一样
b.也可以利用修改密码命令把IIS配置数据库密码修改为密码。
在获取密码的时候如果显示的结果密码为“******”应当修改Adsutil.vbs文件,修改方法:在c:\inetpub\adminscripts 找到adsutil.vbs (根据装系统时设定的不同,有的路径可能不一样)如下(图3)
在获取密码的时候如果显示的结果密码为“******”应当修改Adsutil.vbs文件,修改方法:在c:\inetpub\adminscripts 找到adsutil.vbs (根据装系统时设定的不同,有的路径可能不一样)如下(图3)
用记事本打开此文件 查找 IsSecureProperty = True (注意=前后各有一个空格
),将 IsSecureProperty = True 改为 IsSecureProperty = False 保存关闭。 如下(图4)
),将 IsSecureProperty = True 改为 IsSecureProperty = False 保存关闭。 如下(图4)
然后点击开始---->运行,输入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" 如下(图5)
password 设置为你想修改的密码,即与第一步中你设置的用户IWAM _****的相同,按回车即可修改完成。
这里一定要注意:w3svc与wamuserpass之间的杠是/而不是\,否则会出错。
并且还要注意:修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。
如何停止?打开计算机管理,在Internet信息服务上单击右键,选择重新启动IIS服务,在选项中点停止IIS服务,确定即可。
3)更改组件服务中的密码
开始--->程序--->附件 打开命令提示符
先输入 cd c:\inetpub\adminscripts
先输入 cd c:\inetpub\adminscripts
然后输入 cscript.exe synciwam.vbs -v
系统会如下(图6)提示:
然后只要运行了一下iisreset重启IIS就可以了。
但是我这里最后一步提示8004e00f的错误,此错误是MSDTC服务不正常造成的,解决方法:1、打开控制面板--->管理工具--->组件服务,发现“我的电脑”有向下的红色小箭头,再点击它下面的“com+应用程序”文件夹的时候,提示如下(图7)
2、进入事件查看器(图8),打开这4个错误日志来看,发现msdtc服务没有正常启动:
4个错误日志详情如下:
事件类型: 错误
事件来源: MSDTC
事件种类: 服务
事件 ID: 4163
日期: 2009-8-20
事件: 13:24:42
用户: N/A
计算机: xxxxxxx
描述:
找不到 MS DTC 日志文件。在确认所有由 MS DTC 协调的资源管理器不具有“不确定”状态的事务之后,请运行 msdtc -resetlog 创建日志文件。
事件来源: MSDTC
事件种类: 服务
事件 ID: 4163
日期: 2009-8-20
事件: 13:24:42
用户: N/A
计算机: xxxxxxx
描述:
找不到 MS DTC 日志文件。在确认所有由 MS DTC 协调的资源管理器不具有“不确定”状态的事务之后,请运行 msdtc -resetlog 创建日志文件。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
事件类型: 错误
事件来源: MSDTC
事件种类: 磁盘
事件 ID: 4185
日期: 2009-8-20
事件: 13:24:42
用户: N/A
计算机: xxxxxxx
描述:
MS DTC 事务管理器启动失败。LogInit 返回错误 0x2。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
事件类型: 错误
事件来源: MSDTC
事件种类: 设备
事件 ID: 4112
日期: 2009-8-20
事件: 13:24:42
用户: N/A
计算机: xxxxxxx
描述:
无法启动 MS DTC 事务管理器。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
事件类型: 错误
事件来源: COM+
事件种类: (98)
事件 ID: 4691
日期: 2009-8-20
事件: 13:24:42
用户: N/A
计算机: xxxxxxx
描述:
运行时环境无法初始化支持事务处理组件所需的事务。请确认 MS-DTC 正在运行。(DtcGetTransactionManagerEx(): hr = 0x8004d01b)
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
3、删除注册表中的键:点击开始---->运行---->输入regedit后确定打开注册表编辑器删除下面三个键,路径如下
· HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC (图9)
· HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC (图10)
· HKEY_CLASSES_ROOT\CID (图11)
4、停止MSDTC服务:net stop msdtc
5、卸载MSDTC服务:msdtc -uninstall
6、重新安装MSDTC服务:msdtc -install (图12)
7、确认在事件查看器中msdtc服务已经正常启动,这步很关键,如果没有,重新启动下电脑看看,现在进入组件服务,“我的电脑”上的红色小箭头没有了,可以打开“com+应用程序”只是打开后没有看到以下的三个组件:
IIS In-Process Applications (IIS 进程内应用程序)
IIS Out-of-Process Pooled Applications (IIS 进程外应用程序)
IIS Utilities (IIS 实用工具)(图13)
IIS Out-of-Process Pooled Applications (IIS 进程外应用程序)
IIS Utilities (IIS 实用工具)(图13)
这是服务器系统中的ASP相关组件(com+组件)出现了问题,我有几次安装IIS后发现问题查到这里看到是一个或二个,没有完整的三个,既然是不全的,那必须删除这剩余的组件,有时会删除不掉,那需要先将属性里的高级中“禁止删除”的勾选取消后再来删除。删除后再打开命令提示符输入:
“cd %windir%\system32\inetsrv”字符串命令,单击回车键后,再执行
“rundll32 wamreg.dll,CreateIISPackage”命令,接着再依次执行
“regsvr32 asptxn.dll”命令,最后输入
“iisreset”命令,重新启动一下计算机操作系统后就可看到完整的com+组件了(图14)
这也就说明IIS服务器能正确响应ASP脚本,这时再打开管理---->服务和应用程序---->默认网站下打开ASP页面会发现可以正常访问了。
安装过好多次IIS,发现操作步骤就是上面这几个,不过不一定要按上面的顺序来,只要能把这几个步骤都做一遍了,基本上也就能正常浏览ASP页面。(在网上看到关于HTTP 500 内部服务器错误的资料很多很杂,看得人头昏眼花的还没明白个所以然,所以我把它归纳出来希望对大家有所帮助)。
本文出自 “linger” 博客,请务必保留此出处http://linger.blog.51cto.com/867849/310376
转载于:https://blog.51cto.com/wurongzong/567708