`
阅读更多

转自:http://blog.csdn.net/jkeen/archive/2008/04/24/2323127.aspx

 

IIS报错之后在网上找到相关资料并将问题解决了,以下是未经整理的资料:

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. 

出现 DCOM 遇到错误“登录失败: 未知的用户名或错误密码。 ”并且无法登录到 .\IWAM_APJ006 上以运行服务器

 


 

解决IIS的Server Application Error办法2007-12-14 00:36 A.M.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.


访问IIS客户端出现如上错信息提示,

在网上查了查解决方案如下:

1。右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。

2。开始--运行--打cmd,
然后cd D:InetpubAdminscripts(我的系统在D盘),
然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码,
然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码

看一下,行了没有?如果还不行,那么
cscript.exe synciwam.vbs -v,
然后iisreset。

据说就可以了,但是到最后一部提示8004e00f的错误,此错误是MSDTC服务不正常造成的,解决方法:

首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
2、进入事件查看器,发现msdtc服务没有正常启动。
3、删除注册表中的键:
? HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSDTC
? HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTC
? HKEY_CLASSES_ROOTCID
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:inetputadminscripts>adsutil set w3svc/wamuserpass "yourpassword"
10、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:inetputadminscripts>cscript synciwam.vbs -v

到这部分网上大部分都说可以了,但是我这里虽然没有8004e00f的错误提示了,但是访问页面Server Application Error 错误依旧,最后终于找到了解决方法如下:

解决办法:
[1]:
检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,

如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。

[2]:
在CMD下执行以下命令:
cd %windir%\system32\inetsrv

rundll32 wamreg.dll, CreateIISPackage

regsvr32 asptxn.dll

(到这里我就可以用了,不用重启的)

OK,ASP页面一切正常了@!~~~^_^

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.
方法 1:在用户管理器或用户和组中更改密码,使其与 IIS 元数据库密码匹配
1. 在“命令”窗口中,找到 Adsutil.vbs 文件所在的文件夹。使用 Adsutil.vbs 工具从 IIS 元数据库获得 IWAM 和 IUSR 帐户的密码。
2. 若要在 Windows NT 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作:

a. 在开始菜单上,指向程序,指向管理工具,然后单击域用户管理器。在“域用户管理器”中,可以更改所有 Windows NT 用户帐户和组的帐户信息。
b. 双击 IUSR_计算机名 和/或 IWAM_计算机名 用户,然后修改密码,使其反映您在步骤 1 中获得的 IIS 元数据库密码。
若要在 Windows 2000 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作: a. 在开始菜单上,指向程序,指向管理工具,然后单击计算机管理。
b. 在系统工具节点下,单击以展开“本地用户和组”和“用户”节点。在“用户”节点中,可以更改所有 Windows 2000 用户帐户和组的帐户信息。
c. 右击 IUSR_计算机名 和/或 IWAM_计算机名 帐户,然后单击设置密码。
d. 修改密码,使其反映您在步骤 1 中获得的 IIS 元数据库密码。

3. 浏览返回错误信息的 ASP 页,检查问题是否已解决。

方法 2:更改 IIS 元数据库,使其与 IUSR 和/或 IWAM 密码匹配
1. 若要在 Windows NT 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作:

a. 在开始菜单上,指向程序,指向管理工具,然后单击域用户管理器。在“域用户管理器”中,可以更改所有 Windows NT 用户帐户和组的帐户信息。
b. 双击 IUSR_计算机名 和/或 IWAM_计算机名 帐户,然后键入新密码。
若要在 Windows 2000 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作: a. 在开始菜单上,指向程序,指向管理工具,然后单击计算机管理。
b. 在系统工具节点下,单击以展开“本地用户和组”和“用户”节点。在“用户”节点中,可以更改所有 Windows 2000 用户帐户和组的帐户信息。
c. 右击 IUSR_计算机名 和或 IWAM_计算机名 帐户,然后单击设置密码。键入新密码。

2. 在“命令”窗口中,找到 Adsutil.vbs 文件所在的文件夹。使用 Adsutil.vbs 实用工具为 IIS 配置数据库中的 IWAM 和 IUSR 帐户设置密码。
3. 浏览返回错误信息的 ASP 页,检查问题是否已解决。
功能 语法
获取 IUSR 帐户密码 cscript.exe adsutil.vbs get w3svc/anonymoususerpass
获取 IWAM 帐户密码 cscript.exe adsutil.vbs get w3svc/wamuserpass
设置 IUSR 帐户密码 cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password"
设置 IWAM 帐户密码 cscript.exe adsutil.vbs set w3svc/wamuserpass "password"

注意:在 Windows NT 4.0 中尝试获取密码时,密码显示为明文;但在 Windows 2000 中,密码显示为星号。若要在 Windows 2000 中也让密码显示为明文,必须修改 Adsutil.vbs,使它显示明码。为此,请按照下列步骤操作: 1. 在“记事本”中,打开 Adsutil.vbs。
2. 在“编辑”菜单上,单击查找,键入 IsSecureProperty = True,然后单击查找下一个。
3. 将“IsSecureProperty = True”更改为“IsSecureProperty = False”。
4. 保存对 Adsutil.vbs 所做的更改,然后关闭“记事本”。

更改 MTS 或组件服务中的密码
Windows 2000/XP/2003
IIS 5.0 提供了 Synciwam.vbs 文件,以便更新在进程外运行的所有 IIS COM+ 应用程序包的启动标识。Synciwam.vbs 脚本位于 <驱动器>\Inetpub\AdminScripts 文件夹中。您可以使用 CScript 或 WScript 运行 Synciwam.vbs。

若要使用 Synciwam.vbs,请在命令提示符处键入下面的命令:
cscript.exe synciwam.vbs -v
为使所有更改生效,您可能需要重新启动 IIS。若要重新启动 IIS,请在开始菜单上,单击运行,键入 iisreset,然后单击确定。

注意:
当COM+损坏时会出现以下现像

在最后的cscript c:\inetpub\adminscripts\synciwam.vbs -v的时候还出现
Error:1AD:ActiveX部件不能创建对象
或通过运行MMC能添加组件服务但是一打开计算机自动关闭或出错
解决方法就要重新安装COM+
一开始是说,COM+错误

查看事件日志:
出现某种状态,表示此 COM+ 应用程序处于不稳定状态或运行不正常。声明失败: SUCCEEDED(hr)

服务器应用程序 ID: {02D4B3F1-FD88-11D1-960D-00805FC79235}
服务器应用程序实例 ID:
{6615E3FE-D159-48B5-BB65-D6B00778E75F}

这是微软针对2000系统的解决方法:
1.把%WinDir%\System32\Clbcatq.dll删除或改名
2.重启一下
3.进入注册表删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3整支(注意备份)
4.运行CMD,打CD %WinDir%回车
5.打rmdir /s Registration回车
6.如果你打过MS04-012补丁请重装一下
7.进入控制面板,点击添加/删除Windows组件
8.重新安装COM+
解决方法如下:

1。右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。

2。开始--运行--输入cmd,
然后cd c:\Inetpub\AdminScripts
然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码,
然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码

看一下,行了没有?如果还不行,那么
cscript.exe synciwam.vbs -v,
然后iisreset

Server Application Error续,8004EOOF错误

发现运行C:\Inetpub\AdminScripts\synciwam.vbs时报8004EOOF错误,晕死,网上搜索了下,发现是

MSDTC的问题: msdtc服务没有正常启动。 找到原因就好办啦^_^

Step1

删除注册表中的键:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC

HKEY_CLASSES_ROOT\CID

Step2

停止 MSDTC服务:net stop msdtc

Step3

卸载MSDTC服务:msdtc -uninstall

Step4

重新安装MSDTC服务:

msdtc -install

然后再按照原来的解决Server Application Error的方法就可以了

如果还不行的话,这时把IIS卸掉,重新安装就可以了啊

 


 

未能访问 IIS 元数据库

KB: http://support.microsoft.com/?kbid=267904

如果是ASP 2.0就用  aspnet_regiis - ga <WindowsUserAccount>

应该是 aspnet_regiis -ga IWAM_Machinename

未能创建 Mutex  

解决未能创建Mutex的问题 1 如果你还开着VS2005,关掉。2 到ASP.NET的临时目录下面<Windows dir>\Microsoft.Net\Framework\v2.0<extra numbers>\Temporary ASpNET pages3 删除你的项目的那个目录(或者都删除也行)4 重启IIS(如果在命令行下输入 iisreset)5 先打开IE访问你的项目6 然后再打开VS2005

未将对象引用设置到对象的实例 System.Web.Hosting.ISAPIWorkerRequestInProc.GetServerVariable

http://dev.communityserver.com/forums/p/474748/531732.aspx

"aspnet_regiis -i" did the trick

 解决:服务器无法加载应用程序 '/LM/W3SVC'。错误是 '找不到指定的元数据'。

http://blog.csdn.net/wangshangy/archive/2007/03/20/1534639.aspx

解决办法:
                [1]:
                检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,如果正常的话

                请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog  

                以创建 日志文件。
               
                如果运行这个命令没出错 请跳过下面这行字。

                如果运行这个命令出错请转到本文的下半部分的这个地方开始看。(==== 以下部分是网上重新找的资料 (如果执行上面步骤仍然不行,请继续) ==)

                重起机器,检查IIS是否可以正常使用,若不行继续。

                [2]:
                在CMD下执行以下命令:
                cd %windir%\system32\inetsrv 

                rundll32 wamreg.dll, CreateIISPackage 

                regsvr32 asptxn.dll

                重起机器,我的问题到这步已经可以完美解决!

至此,终于解决IIS报错的问题,,有点乱,但有时间整理问题解决的过程。

 

综合分析上面的错误表现我们可以看出,主要是由于IWAM账号(在我的计算机即是IWAM_MYSERVER账号)的密码错误造成了HTTP 500内部错误。

 

在详细分析HTTP500内部错误产生的原因之前,先对IWAM账号进行一下简要的介绍:IWAM账号是安装IIS5时系统自动建立的一个内置账号,主要用于启动进程之外的应用程序的Internet信息服务。IWAM账号的名字会根据每台计算机NETBIOS名字的不同而有所不同,通用的格式是IWAM_MACHINE,即由“IWAM”前缀、连接线“_”加上计算机NETBIOS名字组成。我的计算机NETBIOS名字是MYSERVER,因此我的计算机IWAM账号的名字就是IWAM_MYSERVER,这一点与IIS匿名账号ISUR_MACHINE的命名方式非常相似。

 

IWAM账号建立后被Active DirectoryIIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。按常理说,由操作系统负责的工作我们大可放心,不必担心出错,但不知是BUG还是其它什么原因,系统的对IWAM账号的密码同步工作有时会失败,使三方IWAM账号所用密码不统一。当IISCOM+应用程序使用错误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 ApplicationsKEY),不能转入IIS5应用程序,HTTP 500内部错误就这样产生了。

 

 

 

三、解决办法:

 

1、重设IWAM密码

 

打开我的电脑"管理",切换到"本地用户和组",单击"用户"选中"IWAM_computer_name"用户,右击选择"设置密码",在跳出的重设密码对方框中给IWAM_computer_name设置新的密码,这儿我们设置成"rock2006"(没有引号的),确定,等待密码修改成功。

 

2、同步IIS metabaseIWAM_computer_name账号的密码

 

可能因为这项改动太敏感和重要,微软并没有为我们修改IIS metabaseIWAM_computer_name账号密码提供一个显式的用户接口,只随IIS5提供了一个管理脚本adsutil.vbs,这个脚本位于C:\inetpub\AdminScripts子目录下(位置可能会因你安装IIS5时设置的不同而有所变动)

 

adsutil.vbs脚本功能强大,参数非常多且用法复杂,这里只提供使用这个脚本修改IWAM_computer_name账号密码的方法:

 

进入在cmd下进入C:\inetpub\AdminScripts

cd C:\inetpub\AdminScripts

C:\inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass Password "rock2006"

 

修改成功后,系统会有如下提示:

 

WAMUserPass                     : (STRING) "**********"

 

3、同步COM+应用程序所用的IWAM_computer_name的密码

 

同步COM+应用程序所用的IWAM_computer_name的密码,我们使用组件服务MMC管理单元。

 

(1)、打开控制面板,进入管理工具,找到“组件服务”->计算机->“我的电脑”->COM+应用程序”->Out-Of-Process Pooled Applications”,右击“Out-Of-Process Pooled Applications->“属性”。

 

(2)、切换到“Out-Of-Process Pooled Applications”属性对话框的“标志”选项卡。“此应用程序在下列账户下运行”选择中“此用户”会被选中,用户名是“IWAM_computer_name”。这些都是缺省的,不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码“rock2006”,确定退出。

 

(3)、系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。

 

如果我们在IIS中将其它一些Web的“应用程序保护”设置为“高(独立的),那么这个WEB所使用的COM+应用程序的IWAM账号密码也需要同步。重复(1)-(3)步,同步其它相应Out of process applicationIWAM账号密码

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics