一.錯(cuò)誤表現(xiàn)
IIS5的HTTP 500內(nèi)部服務(wù)器錯(cuò)誤是我們經(jīng)常碰到的錯(cuò)誤之一,它的主要錯(cuò)誤表現(xiàn)
就是ASP程序不能瀏覽但HTM靜態(tài)網(wǎng)頁不受影響。另外當(dāng)錯(cuò)誤發(fā)生時(shí),系統(tǒng)事件日
志和安全事件日志都會(huì)有相應(yīng)的記錄。
具體如下:
(一)IE中的表現(xiàn)
當(dāng)瀏覽以前能夠正常運(yùn)行的asp頁面時(shí)會(huì)出現(xiàn)如下的錯(cuò)誤:
網(wǎng)頁無法顯示
您要訪問的網(wǎng)頁存在問題,因此無法顯示。
請(qǐng)嘗試下列操作:
打開 http://127.0.0.1 主頁,尋找指向所需信息的鏈接。
單擊刷新按鈕,或者以后重試。
HTTP 500 - 內(nèi)部服務(wù)器錯(cuò)誤
Internet 信息服務(wù)
技術(shù)信息(支持個(gè)人)
詳細(xì)信息:
Microsoft 支持
或者是:
Server Application Error
The server has encountered an error while loading an application durin
g the processing of your request. Please refer to the event log for mo
re detail information. Please contact the server administrator for ass
istance.
(二)安全日志記錄(2條)
事件類型: 失敗審核
事件來源: Security
事件種類: 登錄/注銷
事件 ID: 529
日期: 2001-9-9
事件: 11:17:07
用戶: NT AUTHORITY\SYSTEM
計(jì)算機(jī): MYSERVER
描述:
登錄失敗:
原因: 用戶名未知或密碼錯(cuò)誤
用戶名: IWAM_MYSERVER
域: MYDOM
登錄類型: 4
登錄過程: Advapi
身份驗(yàn)證程序包: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名: MYSERVER
事件類型: 失敗審核
事件來源: Security
事件種類: 帳戶登錄
事件 ID: 681
日期: 2001-9-9
事件: 11:17:07
用戶: NT AUTHORITY\SYSTEM
計(jì)算機(jī): MYSERVER
描述:
登錄到帳戶: IWAM_MYSERVER
登錄的用戶: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
從工作站: MYSERVER
未成功。錯(cuò)誤代碼是: 3221225578
(三)系統(tǒng)日志中的記錄(2條)
事件類型: 錯(cuò)誤
事件來源: DCOM
事件種類: 無
事件 ID: 10004
日期: 2001-9-9
事件: 11:20:26
用戶: N/A
計(jì)算機(jī): MYSERVER
描述:
DCOM 遇到錯(cuò)誤“無法更新密碼。提供給新密碼的值包含密碼中不允許的值。 ”
并且無法登錄到 .\IWAM_MYSERVER 上以運(yùn)行服務(wù)器:
{3D14228D-FBE1-11D0-995D-00C04FD919C1}
事件類型: 警告
事件來源: W3SVC
事件種類: 無
事件 ID: 36
日期: 2001-9-9
事件: 11:20:26
用戶: N/A
計(jì)算機(jī): MYSERVER
描述:
服務(wù)器未能轉(zhuǎn)入應(yīng)用程序 '/LM/W3SVC/4/Root'。錯(cuò)誤是 'RunAs 的格式必須是<
域名>\<用戶名>或只是<用戶名>'。
若要獲取關(guān)于此消息的更多的信息,請(qǐng)?jiān)L問 Microsoft 聯(lián)機(jī)支持站點(diǎn):
http://www.microsoft.com/contentredirect.asp 。
二.原因分析
綜合分析上面的錯(cuò)誤表現(xiàn)我們可以看出,主要是由于IWAM賬號(hào)(在我的計(jì)算機(jī)即
是IWAM_MYSERVER賬號(hào))的密碼錯(cuò)誤造成了HTTP 500內(nèi)部錯(cuò)誤。
在詳細(xì)分析HTTP500內(nèi)部錯(cuò)誤產(chǎn)生的原因之前,先對(duì)IWAM賬號(hào)進(jìn)行一下簡要的
介紹:
IWAM賬號(hào)是安裝IIS5時(shí)系統(tǒng)自動(dòng)建立的一個(gè)內(nèi)置賬號(hào),主要用于啟動(dòng)進(jìn)程之外
的應(yīng)用程序的Internet信息服務(wù)。IWAM賬號(hào)的名字會(huì)根據(jù)每臺(tái)計(jì)算機(jī)NETBIOS名字
的不同而有所不同,通用的格式是IWAM_MACHINE,即由“IWAM”前綴、連接線
“_”加上計(jì)算機(jī)的NETBIOS名字組成。我的計(jì)算機(jī)的NETBIOS名字是MYSERVER,
因此我的計(jì)算機(jī)上IWAM賬號(hào)的名字就是IWAM_MYSERVER,這一點(diǎn)與IIS匿名賬號(hào)
ISUR_MACHINE的命名方式非常相似。
IWAM賬號(hào)建立后被Active Directory、IIS metabase數(shù)據(jù)庫和COM+應(yīng)用程序三方
共同使用,賬號(hào)密碼被三方分別保存,并由操作系統(tǒng)負(fù)責(zé)這三方保存的IWAM密碼
的同步工作。按常理說,由操作系統(tǒng)負(fù)責(zé)的工作我們大可放心,不必?fù)?dān)心出錯(cuò),
但不知是BUG還是其它什么原因,系統(tǒng)的對(duì)IWAM賬號(hào)的密碼同步工作有時(shí)會(huì)失敗,
使三方IWAM賬號(hào)所用密碼不統(tǒng)一。當(dāng)IIS或COM+應(yīng)用程序使用錯(cuò)誤IWAM的密碼登錄
系統(tǒng),啟動(dòng)IIS Out-Of-Process Pooled Applications時(shí),系統(tǒng)會(huì)因密碼錯(cuò)誤而
拒絕這一請(qǐng)求,導(dǎo)致IIS Out-Of-Process Pooled Applications啟動(dòng)失敗,也就
是我們?cè)贗D10004錯(cuò)誤事件中看到的“不能運(yùn)行服務(wù)器{3D14228D-FBE1-11D0-995
D-00C04FD919C1} ”(這里{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS O
ut-Of-Process Pooled Applications的KEY),不能轉(zhuǎn)入IIS5應(yīng)用程序,HTTP 5
00內(nèi)部錯(cuò)誤就這樣產(chǎn)生了。
三.解決辦法
知道了導(dǎo)致HTTP 500內(nèi)部錯(cuò)誤的原因,解決起來就比較簡單了,那就是人工同步
IWAM賬號(hào)在Active Directory、IIS metabase數(shù)據(jù)庫和COM+應(yīng)用程序中的密碼。
具體操作分三步,均需要以管理員身份登錄計(jì)算機(jī)以提供足夠的操作權(quán)限(IWAM賬
號(hào)以IWAM_MYSERVER為例)。
(一)更改Active Directory中IWAM_MYSERVER賬號(hào)的密碼
因IWAM賬號(hào)的密碼由系統(tǒng)控制,隨機(jī)產(chǎn)生,我們并不知道是什么,為完成下面兩
步的密碼同步工作,我們必須將IWAM賬號(hào)的密碼設(shè)置為一個(gè)我們知道的值。
1、選擇“開始”->“程序”->“管理工具”->"Active Directory用戶和計(jì)算機(jī)",
啟動(dòng)“Active Directory用戶和計(jì)算機(jī)”管理單元。
2、單擊“user”,選中右面的“IWAM_MYSERVER”,右擊選擇“重設(shè)密碼(T)...”,
在跳出的重設(shè)密碼對(duì)方框中給IWAM_MYSERVER設(shè)置新的密碼,這兒我們?cè)O(shè)置成
“Aboutnt2001”(沒有引號(hào)的),確定,等待密碼修改成功。
(二)同步IIS metabase中IWAM_MYSERVER賬號(hào)的密碼
可能因?yàn)檫@項(xiàng)改動(dòng)太敏感和重要,微軟并沒有為我們修改IIS metabase中IWAM_M
YSERVER賬號(hào)密碼提供一個(gè)顯式的用戶接口,只隨IIS5提供了一個(gè)管理腳本adsut
il.vbs,這個(gè)腳本位于C:\inetpub\adminscripts子目錄下(位置可能會(huì)因你安裝
IIS5時(shí)設(shè)置的不同而有所變動(dòng))。
adsutil.vbs腳本功能強(qiáng)大,參數(shù)非常多且用法復(fù)雜,這里只提供使用這個(gè)腳本修
改IWAM_MYSERVER賬號(hào)密碼的方法:
adsutil SET w3svc/WAMUserPass Password
"Password"參數(shù)就是要設(shè)置的IWAM賬號(hào)的新的密碼。因此我們將IIS metabase中
IWAM_MYSERVER賬號(hào)的密碼修改為“Aboutnt2001”的命令就是:
c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass "Aboutnt2001"
修改成功后,系統(tǒng)會(huì)有如下提示:
WAMUserPass: (String) "Aboutnt2001"
(三)同步COM+應(yīng)用程序所用的IWAM_MYSERVER的密碼
同步COM+應(yīng)用程序所用的IWAM_MYSERVER的密碼,我們有兩種方式可以選擇:一種
是使用組件服務(wù)MMC管理單元,另一種是使用IWAM賬號(hào)同步腳本synciwam.vbs。
1、使用組件服務(wù)MMC管理單元
(1)啟動(dòng)組件服務(wù)管理單元:選擇“開始”->“運(yùn)行”->“MMC”,啟動(dòng)管理控
制臺(tái),打開“添加/刪除管理單元”對(duì)話框,將“組件服務(wù)”管理單元添加上。
(2)找到“組件服務(wù)”->“計(jì)算機(jī)”->“我的電腦”->“COM+應(yīng)用程序”->“O
ut-Of-Process Pooled Applications”,右擊“Out-Of-Process Pooled Appli
cations”->“屬性”。
(3)切換到“Out-Of-Process Pooled Applications”屬性對(duì)話框的“標(biāo)志”選
項(xiàng)卡。“此應(yīng)用程序在下列賬戶下運(yùn)行”選擇中“此用戶”會(huì)被選中,用戶名是
“IWAM_MYSERVER”。這些都是缺省的,不必改動(dòng)。在下面的“密碼”和“確認(rèn)密
碼”文本框內(nèi)輸入正確的密碼“Aboutnt2001”,確定退出。
(4)系統(tǒng)如果提示“應(yīng)用程序被一個(gè)以上的外部產(chǎn)品創(chuàng)建。你確定要被這些產(chǎn)品
支持嗎?”時(shí)確定即可。
(5)如果我們?cè)贗IS中將其它一些Web的“應(yīng)用程序保護(hù)”設(shè)置為“高(獨(dú)立的)”,
那么這個(gè)WEB所使用的COM+應(yīng)用程序的IWAM賬號(hào)密碼也需要同步。重復(fù)(1)-
(4)步,同步其它相應(yīng)Out of process application的IWAM賬號(hào)密碼。
2、使用IWAM賬號(hào)同步腳本synciwam.vbs
實(shí)際上微軟已經(jīng)發(fā)現(xiàn)IWAM賬號(hào)在密碼同步方面存在問題,因此在IIS5的管理腳本
中單獨(dú)為IWAM賬號(hào)密碼同步編寫了一個(gè)腳本synciwam.vbs,這個(gè)腳本位于C:\ine
tpub\adminscripts子目錄下(位置可能會(huì)因你安裝IIS5時(shí)設(shè)置的不同而有所變動(dòng))。
synciwam.vbs腳本用法比較簡單:
cscript synciwam.vbs [-v|-h]
“-v”參數(shù)表示詳細(xì)顯示腳本執(zhí)行的整個(gè)過程(建議使用),“-h”參數(shù)用于顯示
簡單的幫助信息。
我們要同步IWAM_MYSERVER賬號(hào)在COM+應(yīng)用程序中的密碼,只需要執(zhí)行
“cscript synciwam.vbs -v”即可,如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v
Microsoft (R) Windows Script Host Version 5.6
版權(quán)所有(C) Microsoft Corporation 1996-2000。保留所有權(quán)利。
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 Applications Key: {3D14228D-FBE1-11D0-
995D-00C04FD919C1}
從上面腳本的執(zhí)行情況可以看出,使用synciwam.vbs腳本要比使用組件服務(wù)的方
法更全面和快捷。它首先從IIS的metabase數(shù)據(jù)庫找到IWAM賬號(hào)"IWAM_MYSERVER"
并取出對(duì)應(yīng)的密碼“Aboutnt2001”,然后查找所有已定義的IIS Applications和
Out of process applications,并逐一同步每一個(gè)Out of process applicatio
ns應(yīng)用程序的IWAM賬號(hào)密碼。
使用synciwam.vbs腳本時(shí),要注意一個(gè)問題,那就是在你運(yùn)行synciwam.vbs之前,
必須保證IIS metabase數(shù)據(jù)庫與Active Directory中的IWAM密碼已經(jīng)一致。因
為synciwam.vbs腳本是從IIS metabase數(shù)據(jù)庫而不是從Active Directory取得IW
AM賬號(hào)的密碼,如果IIS metabase中的密碼不正確,那synciwam.vbs取得的密碼
也會(huì)不正確,同步操作執(zhí)行到“Updating Applications”系統(tǒng)就會(huì)報(bào)80110414錯(cuò)
誤,即“找不到應(yīng)用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}”。
好了,到現(xiàn)在為止,IWAM賬號(hào)在Active Directory、IIS metabase數(shù)據(jù)庫和COM+
應(yīng)用程序三處的密碼已經(jīng)同步成功,你的ASP程序又可以運(yùn)行了!
標(biāo)簽:IIS
隨機(jī)推薦
- 服務(wù)器知識(shí) | 2006-12-22
- 服務(wù)器知識(shí) | 2007-01-13
- 服務(wù)器知識(shí) | 2006-12-27
- 服務(wù)器知識(shí) | 2006-12-27
- 服務(wù)器知識(shí) | 2006-12-22
- 服務(wù)器知識(shí) | 2006-12-22









