IIS HTTP500错误以及COM+应用程序8004e00f错误的解决方法


今天想试试IIS,虽然是内网,没法把网站发布到网上。在WinXP SP2上安装IIS,一切很顺利,然后设置好服务器,浏览htm页都很正常,但当我打开.asp页的时候,总是说http500错误,然后就无法解析asp文件。按照网上的方法,主要都是说IWAM账号在ActiveDirectory、IISmetabase数据库和COM+应用程序三处的密码无法同步,解决方法也很简单,大致有一下三个步骤:1、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
2、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:\inetput\adminscripts>adsutil set w3svc/wamuserpass "yourpassword"
3、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:\inetput\adminscripts>cscript synciwam.vbs -v
,但是在进行第三步操作时总是报8004e00f错误。
         后来在系统里不断的乱看,发现MSDTC服务不正常,于是先从这里下手,具体的解决方法如下:
 
1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
2、进入事件查看器,发现msdtc服务没有正常启动。
3、删除注册表中的键:
? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
? HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
? HKEY_CLASSES_ROOT\CID
4、停止MSDTC服务:net stop msdtc
5、卸载MSDTC服务:msdtc -uninstall
6、重新安装MSDTC服务:msdtc -install
7、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看]
8、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
9、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:\inetput\adminscripts>adsutil set w3svc/wamuserpass "yourpassword"
10、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:\inetput\adminscripts>cscript synciwam.vbs -v
 

出现此问题最可能的原因是没有启动 DTC 协调器服务。如果启动了,则请查看事件查看器,找到关于 IWAM_servername 帐户登录失败的消息。Dllhost.exe 进程是 IIS 管理器中被标记为采用“中”(共用)或“高”(隔离)保护级别运行的 Web 应用程序的“宿主”。IWAM 帐户(常用名称)是 dllhost.exe 的进程标识。如果此帐户的密码与元数据库中和本地 SAM 中的不一样,那些设置为以“中”或“高”保护级别运行的应用程序(称为“进程外应用程序”)便无法启动。当且仅当您获取有关无法登录 IWAM 帐户的消息时,执行以下操作:
 
1.备份 Metabase.bin 和注册表。
 
2.运行 \Inetpub\AdminScripts 脚本文件夹中的 synciwam.vbs。
 

在某些情况下,IIS 5 会在安装期间创建必要的 COM+ 组件时遇到问题。检查您的 \%windir%\system32 文件夹中是否有一个名为 ~clbcatq.dll 的文件。正常情况下没有此文件;如果有,则表示安装期间出现了问题。
 
解决此问题:
 
1.删除 ~clbcatq.dll 文件和 \%systemroot%\registration 文件夹的内容。
 
2.然后依次单击“开始”、“设置”、“控制面板”、“添加/删除程序”和“添加/删除 Windows 组件”。
 
3.不要进行任何更改,直接单击“下一步”。系统现在似乎要进入安装过程,但不会进行任何更改。在这种情况下,此过程会检查必需的 COM 数据包,有时还可对其进行修复。
 
4.最后,重新启动 IIS,看看您的应用程序是否能够运行。
 
请注意:如果您的应用程序无法运行,请打开“管理工具”的“组件服务管理器”控制台,删除“IIS 进程内应用程序”、“IIS 进程外应用程序”和“IIS 实用工具”数据包。在命令提示符下键入以下代码:
 
cd %windir%\system32\inetsrv
 
rundll32 wamreg.dll, CreateIISPackage
 
regsvr32 asptxn.dll
(请注意,CreateIISPackage 区分大小写。)
 

你可能感兴趣的:(http)