标题标题  显示论坛会员列表名单  搜索论坛搜索  HelpHelp
  注册注册  登入登入
ASP教学区
 DoReMe : ASP教学区
主题 话题: IIS5 HTTP500内部错误解决办法 回复发表新主题
作者
贴子内容 << Prev Topic下一个主题 >>
bababa
Groupie
Groupie


加入: 2004/5月/29
Online Status: Offline
回复: 46
Posted: 2004/5月/29 5:19下午 | IP记录 引用 bababa

一.错误表现
IIS5的HTTP 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现
就是ASP程序不能浏览但HTM静态网页不受影响。另外当错误发生时,系统事件日
志和安全事件日志都会有相应的记录。

具体如下:
(一)IE中的表现
当浏览以前能够正常执行的asp页面时会出现如下的错误:

网页无法显示
您要访问的网页存在问题,因此无法显示。
请尝试下列操作:
打开 127.0.0.1 主页,寻找指向所需讯息的连结。
单击刷新按钮,或者以后重试。
HTTP 500 - 内部服务器错误
Internet 讯息服务
技术讯息(支持个人)
详细讯息:
Microsoft 支持

或者是:
Server Application Error
The server has encountered an error  while loading an application durin
g the processing of your request.&n bsp;Please refer to the event log&n bsp;for mo
re detail information. Please contact&nb sp;the server administrator for ass
istance.

(二)安全日志记录(2条)
事件类型: 失败审核
事件来源: Security
事件种类: 登录/注销
事件 ID: 529
日期: 2001-9-9
事件: 11:17:07
使用者: NT AUTHORITY\SYSTEM
计算机: MYSERVER
描述:
登录失败:
原因: 使用者名未知或口令错误
使用者名: IWAM_MYSERVER
域: MYDOM
登录类型: 4
登录过程: Advapi
身份验证程序包: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名: MYSERVER

事件类型: 失败审核
事件来源: Security
事件种类: 帐户登录
事件 ID: 681
日期: 2001-9-9
事件: 11:17:07
使用者: NT AUTHORITY\SYSTEM
计算机: MYSERVER
描述:
登录到帐户: IWAM_MYSERVER
登录的使用者: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
从工作站: MYSERVER
未成功。错误代码是: 3221225578

(三)系统日志中的记录(2条)
事件类型: 错误
事件来源: DCOM
事件种类: 无
事件 ID: 10004
日期: 2001-9-9
事件: 11:20:26
使用者: N/A
计算机: MYSERVER
描述:
DCOM 遇到错误「无法更新口令。提供给新口令的值包含口令中不允许的值。 」
并且无法登录到 .\IWAM_MYSERVER 上以执行服务器:
{3D14228D-FBE1-11D0-995D-00C04FD919C1}

事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 36
日期: 2001-9-9
事件: 11:20:26
使用者: N/A
计算机: MYSERVER
描述:
服务器未能转入应用程序 '/LM/W3SVC/4/Root'。错误是 'RunAs 的格式 必须是<
域名>\<使用者名>或只是<使用者名>'。
若要获取关于此消息的更多的讯息,请访问 Microsoft 联机支持站点: 
www.microsoft.com/contentredirect.asp 。

二.原因分析
综合分析上面的错误表现我们可以看出,主要是由于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 Directory、IIS metabase资料库和COM+应用程 序三方
共同使用,帐号口令被三方分别保存,并由操作系统负责这三方保存的IWAM口令
的同步工作。按常理说,由操作系统负责的工作我们大可放心,不必担心出错,
但不知是BUG还是其它什么原因,系统的对IWAM帐号的口令同步工作有时会失败,
使三方IWAM帐号所用口令不统一。当IIS或COM+应用程序使用错误IWAM的口令登录
系统,启动IIS Out-Of-Process Pooled Applications时, 系统会因口令错误而
拒绝这一请求,导致IIS Out-Of-Process Pooled Applicatio ns启动失败,也就
是我们在ID10004错误事件中看到的「不能执行服务器{3D14228D-FBE1-11D0-995
D-00C04FD919C1} 」(这里{3D14228D-FBE1-11D0-995D-00C04FD919 C1} 是IIS O
ut-Of-Process Pooled Applications的KEY),不能转入IIS5应用程 序,HTTP 5
00内部错误就这样产生了。

三.解决办法
知道了导致HTTP 500内部错误的原因,解决起来就比较简单了,那就是人工同步
IWAM帐号在Active Directory、IIS metabase资料库和COM+应用程序中的 口令。

具体操作分三步,均需要以管理员身份登录计算机以提供足够的操作权限(IWAM账
号以IWAM_MYSERVER为例)。

(一)更改Active Directory中IWAM_MYSERVER帐号的口令
因IWAM帐号的口令由系统控制,随机产生,我们并不知道是什么,为完成下面两
步的口令同步工作,我们必须将IWAM帐号的口令设置为一个我们知道的值。

1、选择「开始」->「程序」->「管理工具」->"Active Directory使用者和计 算机",
启动「Active Directory使用者和计算机」管理单元。

2、单击「user」,选中右面的「IWAM_MYSERVER」,右击选择「重设口令(T)...」,
在跳出的重设口令对方框中给IWAM_MYSERVER设置新的口令,这儿我们设置成
「Aboutnt2001」(没有引号的),确定,等待口令修改成功。

(二)同步IIS metabase中IWAM_MYSERVER帐号的口令
可能因为这项改动太敏感和重要,微软并没有为我们修改IIS metabase中IWAM_M
YSERVER帐号口令提供一个显式的使用者接口,只随IIS5提供了一个管理脚本adsut
il.vbs,这个脚本位于C:\inetpub\adminscripts子目录下(位置可能会因你安装
IIS5时设置的不同而有所变动)。

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

adsutil SET w3svc/WAMUserPass Password

"Password"参数就是要设置的IWAM帐号的新的口令。因此我们将IIS metabase中
IWAM_MYSERVER帐号的口令修改为「Aboutnt2001」的命令就是:

c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUs erPass "Aboutnt2001"

修改成功后,系统会有如下提示:
WAMUserPass: (String) "Aboutnt2001"

(三)同步COM+应用程序所用的IWAM_MYSERVER的口令
同步COM+应用程序所用的IWAM_MYSERVER的口令,我们有两种方式可以选择:一种
是使用元件服务MMC管理单元,另一种是使用IWAM帐号同步脚本synciwam.vbs。
1、使用元件服务MMC管理单元
(1)启动元件服务管理单元:选择「开始」->「执行」->「MMC」,启动管理控
制台,打开「添加/删除管理单元」对话框,将「元件服务」管理单元添加上。

(2)找到「元件服务」->「计算机」->「我的计算机」->「COM+应用程序」->「O
ut-Of-Process Pooled Applications」,右击「Out-Of-Proce ss Pooled Appli
cations」->「属性」。

(3)切换到「Out-Of-Process Pooled Applications」属性对话框的「标 志」选
项卡。「此应用程序在下列帐户下执行」选择中「此使用者」会被选中,使用者名是
「IWAM_MYSERVER」。这些都是缺省的,不必改动。在下面的「口令」和「确认密
码」文本框内输入正确的口令「Aboutnt2001」,确定退出。

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

(5)如果我们在IIS中将其它一些Web的「应用程序保护」设置为「高(独立的)」,
那么这个WEB所使用的COM+应用程序的IWAM帐号口令也需要同步。重复(1)-

(4)步,同步其它相应Out of process application的IWAM帐号密 码。

2、使用IWAM帐号同步脚本synciwam.vbs
实际上微软已经发现IWAM帐号在口令同步方面存在问题,因此在IIS5的管理脚本
中单独为IWAM帐号口令同步编写了一个脚本synciwam.vbs,这个脚本位于C:\ine
tpub\adminscripts子目录下(位置可能会因你安装IIS5时设置的不同而有所变动)。

synciwam.vbs脚本用法比较简单:

cscript synciwam.vbs [-v|-h]

「-v」参数表示详细显示脚本执行的整个过程(建议使用),「-h」参数用于显示
简单的帮助讯息。

我们要同步IWAM_MYSERVER帐号在COM+应用程序中的口令,只需要执行
「cscript synciwam.vbs -v」即可,如下:

cscript c:\inetpub\adminscripts\synciwam.vbs -v
Microsoft (R) Windows Script Host V ersion 5.6
版权所有(C) Microsoft Corporation 1996-2000。保留所有权 利。
WamUserName:IWAM_MYSERVER
WamUserPass:Aboutnt2001
IIS Applications Defined:
Name, AppIsolated, Package ID
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
Root, 2,
IISHelp, 2,
IISAdmin, 2,
IISSamples, 2,
MSADC, 2,
ROOT, 2,
IISAdmin, 2,
IISHelp, 2,
Root, 2,
Root, 2,
Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Updating Applications:
Name: IIS Out-Of-Process Pooled Applicat ions Key: {3D14228D-FBE1-11D0-
995D-00C04FD919C1}

从上面脚本的执行情况可以看出,使用synciwam.vbs脚本要比使用元件服务的方
法更全面和快捷。它首先从IIS的metabase资料库找到IWAM帐号"IWAM_MYSERVER"
并取出对应的口令「Aboutnt2001」,然后查找所有已定义的IIS Applications和
Out of process applications,并逐一同步每一个Out  of process applicatio
ns应用程序的IWAM帐号口令。

使用synciwam.vbs脚本时,要注意一个问题,那就是在你执行synciwam.vbs之前,
必须保证IIS metabase资料库与Active Directory中的IWAM口令已经一致。因
为synciwam.vbs脚本是从IIS metabase资料库而不是从Active Directo ry取得IW
AM帐号的口令,如果IIS metabase中的口令不正确,那synciwam.vbs取得的口令
也会不正确,同步操作执行到「Updating Applications」系统就会报80110414错
误,即「找不到应用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}」。

好了,到现在为止,IWAM帐号在Active Directory、IIS metabase资料库和C OM+
应用程序三处的口令已经同步成功,你的ASP程序又可以执行了! 

Back to Top 查看 bababa's 资料 搜索其它贴子 bababa 访问 bababa's
 

如果你想回复的话你必须首先 login
如果你还没有注册的话你必须首先 注册

  回复发表新主题
显示可打印的页面 显示可打印的页面

论坛跳转
不能 张贴新论题在这个讨论版
不能 回应论题在这个讨论版
不能 删除你的发言在这个讨论版
不能 编辑你的发言在这个讨论版
不能 新增投票标题在这个讨论版
不能 在这个讨论版投票

Edit by doreme Forums version 2004
Welcome ©2001-2004 doreme Guide

This page was generated in 0.1875 seconds.

 
保养品
保养品, Skin Care
www.elady.tw
美材批发
美材, Cosmetic
www.elady.tw/beauty_org
保养品批发
名牌保养品、保养品批发
gb.perfume.com.tw/skincare
饰品批发
饰品、饰品批发
gb.perfume.com.tw/ornament