错误页面显示如下信息
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.
(或
HTTP 错误 500.19 - Internal Server Error)
原因:
一般出现这种错误是因为:IUSR_计算机名 和 IWAM_计算机名 与 帐户的用户名和密码所存储的三个位置未能同步!
户名和密码存储于以下三个位置:
*Internet Information Server (IIS) 配置数据库
*域用户管理器 (Windows NT) 或本地用户和组 (Windows 2000)
*Microsoft Transaction Server (Windows NT) 或组件服务 (Windows 2000)
具体解决步骤:
1) 右键单击 我的电脑---->管理工具---->计算机管理---->本地用户和组---->用户,
给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。
右击设置密码,设置为一个你想要的密码。
2) 同步IIS 配置数据库密码:
此处命令有二种,一种可以查看密码,一种是修改密码:
a.你可以利用查看密码命令查看 IWAM密码,然后把第一步中用户IWAM密码设置为与 查看到的IIS配置数据库密码一样
b.也可以利用修改密码命令把IIS配置数据库密码修改为你第一步修改过的IWAM密码。
查看密码:
步骤一:
这里注意:在WIN2000/XP中,查看到的密码为星号,若要不为星号,必须要先修改adsutil.vbs文件。
修改方法:
a.到C:\Inetpub\AdminScripts(默认安装路径) 找到adsutil.vbs (根据装系统时设定的,不同的系统路径可能不一样)
b.右键单击,用记事本打开
c.查找 IsSecureProperty = True注意=前后各有一个空格
d.将 IsSecureProperty = True 改为 IsSecureProperty = False
e.保存,关闭,OK。
步骤二:
开始--->程序--->附件 打开命令提示符
输入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"
这里的"password"可以设置为你想要修改的密码,即与第一步中你设置的用户IWAM_****的相同,按回车即可修改完成。
这里一定要注意:w3svc与wamuserpass之间的杠是/而不是",否则会出错。
并且还要注意:修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。
如何停止?打开计算机管理,在Internet信息服务上单击右键,选择重新启动IIS服务,在选项中点停止IIS服务,确定即可。
3) 更改组件服务中的密码
开始--->程序--->附件 打开命令提示符
先输入cd C:\Inetpub\AdminScripts
然后输入cscript.exe synciwam.vbs –v
系统会提示:
引用内容
C:\Inetpub\AdminScripts>cscript.exe synciwam.vbs -v
Microsoft (R) Windows Script Host Version 5.7
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
IIS Applications Defined:
Name, AppIsolated, Package ID
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
ROOT, 2,
IISHelp, 2,
PHP, 2,
Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Updating Applications:
Name: IIS Out-Of-Process Pooled Applications Key: {3D14228D-FBE1-11D0-995D-00C04
FD919C1}
一般到这一步就差不多了,重启IIS就完事了。
但有时执行cscript.exe synciwam.vbs -v会报错
错误种类一:
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
IIS Applications Defined:
Name, AppIsolated, Package ID
ROOT, 0,
IISHelp, 0,
Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Error: 1AD: ActiveX 部件不能创建对象
C:\Inetpub\AdminScripts>
错误种类二:
C:\Inetpub\AdminScripts>synciwam.vbs -v
IIS Applications Defined:
Name, AppIsolated, Package ID
ROOT, 2,
IISHelp, 2,
Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Error: 8004E00F:
C:\Inetpub\AdminScripts>
8004E00F --------- COM+无法与Microsoft分布式事务协调交谈
(其实"COM+ 无法与 Microsoft 分布式事务协调程序交谈"在安装了Windows组件中的消息队列后,就不会出现这个错误了,同时"消息队列"组件又对服务中的"Distributed Transaction Coordinator"(即msdtc服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,上图中的COM+应用程序菜单就 可以打开了,表示其已正常工作!如果在这个时候再装IIS或者把IIS卸载重装,就不需要上面的手动密码同步问题了!就是说按这个步骤安装好IIS,就已 经正常了!)
别急,继续往下面做。
解决办法:
1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,若报错"COM+ 无法与 Microsoft 分布式事务协调程序交谈",无法查看里面的对象。那就再继续看下面
2、进入事件查看器,看msdtc服务(全称:Microsoft Distributed Transaction Coordinator服务)是否正常启动。(应该是没有)
3、开始 -> 运行 -> regedit 打开注册表,删除注册表中的键(级联删除):
" HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC
" HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC
" HKEY_CLASSES_ROOT/CID点击开始--运行--cmd-弹出一个黑色的框后
4、停止MSDTC服务:net stop msdtc
【如果是这样还是不行!那只能把应用程序保护降低到:低(IIS进程)
具体步骤:打开Internet 信息服务 -> 默认网站 -> 属性 -> 主目录 -> 应用程序保护::低(IIS进程) 这样总OK了吧。
不过出现这么混乱的故障,还是建议你重装个完整版的系统比较好!】
5、卸载MSDTC服务:msdtc -uninstall
6、重新安装MSDTC服务:msdtc -install
7、确认在服务中msdtc服务(Distributed Transaction Coordinator)已经正常启动[这步很关键,如果没有,就右键启动,别忘了设置为自动运行(重新启动下电脑看看也行)
8、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
9、同步IIS metabase中IWAM_MYSERVER的密码,
在CMD中:c:\inetpub\adminscripts
输入命令adsutil set w3svc/wamuserpass "yourpassword"
10、同步COM+应用程序所用的IWAM_MYSERVER密码,
在CMD中:c:\inetpub\adminscripts> 再输入命令 cscript synciwam.vbs –v 试试.
到这理论上就行了!不行的话就开始继续了
检查:管理工具-控制台根目录-组件服务-计算机-我的电脑-COM+应用程
序中(此项下至少八个对象)。
COM+ Explorer
COM+ QC Dead Letter Queue Listener
COM+ Utilities
IIS In-Process Applications
IIS Out-Of-Process Pooled Applications
IIS Utilities
MS Software Shadow Copy Provider
System Application
如果打不开COM+应用程序”,看下面的[1],
如果打开后没有“IIS Out-Of-Process Pooled Applications”看下面的[2]
[1]: 检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,如果正常的话请你跳过此步骤;如果出错:
1.无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建日志文件。
2.看看DTC服务所依存的服务开启没有。可参见我的另一篇文章。
http://www.cnblogs.com/chuxin/archive/2012/01/04/2311992.html (其实"COM+ 无法与 Microsoft 分布式事务协调程序交谈"在安装了Windows组件中的消息队列后,就不会出现这个错误了,同时"消息队列"组件又对服务中的"Distributed Transaction Coordinator"(即dtc服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,上图中的COM+应用程序菜单就 可以打开了,表示其已正常工作!)
[2]: 在CMD下执行以下命令:
1.cd %windir%\system32\inetsrv
2.rundll32 wamreg.dll, CreateIISPackage (这里一定要注意大小写一定要一致.而且wamreg.dll,后面要加一个空格否则就会提示wamreg.dll出错丢失条目:CreateIISPackage)
3.regsvr32 asptxn.dll关闭并重新打开"组件服务"。(IIS-out-of-process pooled applications属性-标识-下列帐户,密码改与下列的“你的密码”一样;如不能打开ASP,将IIS-out-of-process pooledapplications属性内标识性选系统帐户。)
执行以上命令可能出现的问题:
(1) 加载wamreg.dll时出错找不到制定模块 LoadLibrary(“asptxn。dll”)失败 - 找不到制定的模块,下载这个dll文件
(2)如果执行regsvr32 asptxn.dll命令时出现asptxn.dll中的dellregisterserver失败,返回代码:0x8004e00f,那很可能是C:\WINDOWS\system32里没有asptxn.dll文件。(接下去怎么做就不废话了)
到这里大功告成了!!再测试,ASP页面可以打开了。
【如果还不行,就重新Download一个IIS . “COM+应用程序”里正常要有的应用程序一般为8个对象,如果没有IIS****项目则在控制面板/组件里重新安装IIS就会解决(这种情况大部分是因为IIS安装包的问题,注意版本!)。
再不行,就考虑一下你的系统是不是GHOST版的,大部分都是精简版的GHOST,为普通用户所用,所以很多服务项会没有,参见我的另一篇文章。http://www.cnblogs.com/chuxin/archive/2012/01/04/2311992.html
对于程序员来说,装系统还是建议装完整的系统,不然安装微软的东西这样那样的问题就出得多。】
其它问题:
一:
iis无法启动,发生意外错误0x8ffe2740:
关闭迅雷,或修改IIS默认端口为80以外的。
二:
装上IIS之后无法显示ASP网页
原因很多,请尝试以下操作:
1、查看网站属性——文档
看看启用默认文档中是否存在:index.asp index.htm index.html (最好全都有,没有可添加,试过只有一个index.asp也行)
2、查看网站属性——主目录
A、本地路径是否指定正确
B、是否勾选“脚本资源访问”?
C、是否勾选“读取”?
D、执行权限:纯脚本
3、查看网站属性——目录安全性——编辑
A、是否勾选“匿名访问”?
B、用户名:IUSR_您的计算机名(不对,就点浏览选择)
C、密码不用改,勾选“允许IIS控制密码”就可以了
D、其它不用选
4、查看网站属性——网站
A、IP地址:全部未分配 或者 选择一个
B、TCP端口:80 (最好不要改,改了访问方法就不一)
5、打开控制面板——管理工具——计算机管理——本地用户和组——用户
A、看看“IUSR_您的计算机名”此用户有没有启动,必须启动(说明:有红色的×表示没有启动)
B、看看“IWAM_您的计算机名”此用户有没有启动,必须启动(说明:有红色的×表示没有启动)
C、在“IWAM_您的计算机名”该用户上按右键——设置密码(密码要记住,后面还需要用上该密码)
6、打开控制面板——管理工具——组件服务——组件服务——计算机——我的电脑——COM+应用程序
A、在“IIS Out-Of-Process Pooled Applications”上按右键选择‘属性’——选择‘标识’,指定用户:IWAM_您计算机名(说明:可以点浏览查找);输入密码,密码上面步骤的 密码。再次启动该服务,启动后它会动。
B、在“IIS In-Process Applications”上按右键选择‘属性’——选择‘安全性’,将‘启用身份验证’勾去掉
C、 在“IIS Utilities”上按右键选择‘属性’——选择‘安全性’,将‘启用身份验证’勾去掉。