日期:2010-10-15  浏览次数:21275 次

最近机子的IIS始终不正常,总是说http500错误,无法解析asp文件,但可以显示静态HTML。去掉‘显示友好的URL错误’后报错:
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.

网上的说法是IWAM_计算机名这个用户密码在Active Directory、IIS metabase数据库和COM+应用程序之间不同步。
但是我在点击‘管理工具-组件服务-组件服务’时提示:COM+ 无法与 Microsoft 分布式事务协调程序交谈,8004e00f错误.

查看事件日志发现MSDTC服务不正常

具体的解决方法如下:

1、删除注册表中的键:
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
• HKEY_CLASSES_ROOT\CID
2、停止MSDTC服务:net stop msdtc
3、卸载MSDTC服务:msdtc -uninstall
4、重新安装MSDTC服务:msdtc -install
5、启动MSDTC服务:net start msdtc
6、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看]
7、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
8、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:\inetput\adminscripts>adsutil SET w3svc/WAMUserPass Password
"Password"参数就是要设置的IWAM账号的新的密码
9、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:\inetput\adminscripts>cscript synciwam.vbs -v
10、大功告成!


IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。但系统的对IWAM账号的密码同步工作有时会失败,使三方IWAM账号所用密码不统一。当IIS或COM+应用程序使用错误IWAM的密码登录系统,启动IIS Out-Of-Process Pooled Applications时,系统会因密码错误而拒绝这一请求,导致IIS Out-Of-Process Pooled Applications启动失败,也就是我们在ID10004错误事件中看到的“不能运行服务器{3D14228D-FBE1-11D0-995D-00C04FD919C1} ”(这里{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS Out-Of-Process Pooled Applications的KEY),不能转入IIS5应用程序,HTTP 500内部错误就这样产生了。