【摘 要】本文通過對(duì)教學(xué)中出現(xiàn)的一例錯(cuò)誤進(jìn)行分析研究,深入探討了“IWAM賬號(hào)在ActiveDirectory、IIS metabase數(shù)據(jù)庫和COM+應(yīng)用程序三處的密碼不同步”問題的成因、應(yīng)對(duì)方法,以及在解決過程中可能出現(xiàn)的問題之對(duì)策。本錯(cuò)誤是因?yàn)槲④浀囊粋€(gè)BUG所造成的,出現(xiàn)沒有規(guī)律可言,在學(xué)習(xí)網(wǎng)絡(luò)編程過程中時(shí)有碰到,掌握該問題的解決方法,對(duì)實(shí)際操作過程中的排錯(cuò)很有價(jià)值。
【關(guān)鍵詞】IIS;ASP;HTTP 500;Iwam;帳號(hào)
在進(jìn)行計(jì)算機(jī)網(wǎng)絡(luò)編程相關(guān)課程的教學(xué)過程中,多次遇到“IIS突然不支持ASP只支持HTML”的問題。對(duì)此問題一直采用“將IIS進(jìn)行缷載后,再重新安裝”的方法進(jìn)行解決。為深入研究該問題產(chǎn)生的原因,經(jīng)過多方查閱資料和試驗(yàn),找到了一些問題的癥結(jié)和解決方法。問題的成因是因?yàn)槲④浀囊粋€(gè)BUG所造成的。主要由于兩個(gè)方面的誘因產(chǎn)生此問題,一是病毒,二是系統(tǒng)優(yōu)化服務(wù)時(shí)“落下”的后遺癥。在XP IIS5.1的環(huán)境下出現(xiàn)較多,WIN 2K3 IIS6.0出現(xiàn)的概率少。
1.錯(cuò)誤表現(xiàn)
IIS的http 500內(nèi)部服務(wù)器錯(cuò)誤是我們經(jīng)常碰到的錯(cuò)誤之一,其中一種錯(cuò)誤表現(xiàn)就是asp程序不能瀏覽但HTML靜態(tài)網(wǎng)頁不受影響。另外當(dāng)錯(cuò)誤發(fā)生時(shí),系統(tǒng)事件日志和安全事件日志都會(huì)有相應(yīng)的記錄(見圖1)。記錄信息如下:
1.1 IE中的表現(xiàn)
當(dāng)瀏覽以前能夠正常運(yùn)行的asp頁面時(shí)突然出現(xiàn)如下的錯(cuò)誤:
HTTP 500 - 內(nèi)部服務(wù)器錯(cuò)誤
圖2 HTTP 500 內(nèi)部服務(wù)器錯(cuò)誤提示信息
或
HTTP 500 - Internal Server Error
圖3 HTTP 500 內(nèi)部服務(wù)器錯(cuò)誤提示信息
或
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.
圖4 服務(wù)器錯(cuò)誤提示信息
1.2 安全日志記錄(見圖5)
1.3 系統(tǒng)日志中的記錄(見圖6)
描述:DCOM遇到錯(cuò)誤“無法更新密碼。提供給新密碼的值包含密碼中不允許的值。”并且無法登錄到“.\\iwam_WWW-
725763CF614”上以運(yùn)行服務(wù)器:3d14228d-
fbe1-11d0-995d-00c04fd919c1(見圖7)。
圖7 系統(tǒng)日志記錄提示信息
該錯(cuò)誤提示,服務(wù)器未能轉(zhuǎn)入應(yīng)用程序“/lm/w3svc/4/root”。錯(cuò)誤產(chǎn)生的原因是未按照 runas 的格式“<域名>\\<用戶名>或只是<用戶名>”進(jìn)行相關(guān)設(shè)置。
2.原因分析
綜合分析上面的錯(cuò)誤表現(xiàn),經(jīng)過查閱相關(guān)資料后才知道,主要是由于iwam賬號(hào)(在我的計(jì)算機(jī)即是iwam_WWW-725763CF614賬號(hào))的密碼錯(cuò)誤造成了http 500內(nèi)部錯(cuò)誤。
iwam賬號(hào)是安裝IIS時(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_machinename,即由“iwam”前綴、連接線“_”加上計(jì)算機(jī)的netbios名字組成。我的計(jì)算機(jī)的netbios名字是WWW-725763CF614,因此我的計(jì)算機(jī)上iwam賬號(hào)的名字就是iwam_WWW-725763CF614,這一點(diǎn)與iis匿名賬號(hào)isur_machinename的命名方式非常相似。
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è)阱e(cuò)誤事件中看到的“不能運(yùn)行服務(wù)器 3d14228d-fbe1-11d0-995d-00c04fd919c1}” (這里 3d14228d-fbe1-11d0-995d-00c04fd919c1}是IIS out-of-process pooled applications的key),不能轉(zhuǎn)入IIS應(yīng)用程序,HTTP 500內(nèi)部錯(cuò)誤就這樣產(chǎn)生了。
3.解決辦法
通過分析明確HTTP 500內(nèi)部錯(cuò)誤的原因。根據(jù)原因所采用的具體解決方法為人工同步iwam賬號(hào)在active directory、iis metabase數(shù)據(jù)庫和com+應(yīng)用程序中的密碼。以管理員身份登錄計(jì)算機(jī)以提供足夠的操作權(quán)限,以實(shí)驗(yàn)用計(jì)算機(jī)為例,環(huán)境為:Win2k3 EE SP2 IIS6,iwam賬號(hào)為iwam_WWW-725763CF614。具體解決步驟如下:
3.1 更改active directory中iwam_
WWW-725763CF614賬號(hào)的密碼
因iwam賬號(hào)的密碼由系統(tǒng)控制,隨機(jī)產(chǎn)生,為完成下面兩步的密碼同步工作,必須將iwam賬號(hào)的密碼設(shè)置為一個(gè)操作者知道的值。
操作方法為右鍵單擊『我的電腦』→『管理』,打開『計(jì)算機(jī)管理』界面,打開 本地用戶和組→用戶,右鍵單擊:“IWAM_WWW-725763CF614 啟動(dòng)IIS進(jìn)程帳號(hào) …”,點(diǎn)擊『設(shè)置密碼』,設(shè)置為一個(gè)操作者知道的密碼,如:fwzd2fwzd(見圖8)。
3.2 同步IIS 配置數(shù)據(jù)庫密碼
在同步IIS 配置數(shù)據(jù)庫密碼的操作中,可以利用查看密碼命令查看 IWAM密碼,把用戶IWAM的密碼設(shè)置為與查看到的IIS配置數(shù)據(jù)庫密碼一樣,也可以利用修改密碼命令把IIS配置數(shù)據(jù)庫密碼修改為已知的IWAM密碼。(在WIN2k3中,查看到的密碼為星號(hào),若要不為星號(hào),必須要先修改adsutil.vbs文件。修改方法:①到C盤inetpub\\adminscripts文件夾下找到adsutil.vbs(根據(jù)裝系統(tǒng)時(shí)設(shè)定的不同,有的路徑可能不一樣);②右鍵單擊,用記事本打開;③查找IsSecure-
Property = True(注意=前后各有一個(gè)空格);④將IsSecureProperty = True改為IsSecureProperty = False;⑤保存。)兩種方法分別如下:
3.2.1 采用查看密碼命令方法解決密碼同步問題
采用查看密碼命令方法解決密碼同步問題的操作步驟為:①『開始』→『運(yùn)行』→輸入“CMD回車”,打開命令提示符,輸入“cd c:\\inetpub\\adminscripts”;②獲取 IWAM 帳戶密碼命令:cscript.exe adsutil.vbs get w3svc/wamuserpass;③獲取 IUSR 帳戶密碼命令:cscript.exe adsutil.vbs get w3svc/anonymoususerpass;輸入以上命令,按回車可分別查看IWAM和IUSR的密碼(圖9)。
3.2.2 采用修改密碼命令方法解決密碼同步問題
采用修改密碼命令方法解決密碼同步問題的操作步驟為:①修改IWAM帳戶密碼:cscript.exe adsutil.vbs set w3svc/wamuserpass \"fwzd2fwzd\";②修改 IUSR 帳戶密碼:cscript.exe adsutil.vbs set w3svc/anonymoususer-pass \"fwzd2fwzd\";(注意:w3svc與wamuserpass之間的杠是/而不是\\。否則后面可能會(huì)出錯(cuò),并且IWAM帳戶可能會(huì)被鎖定。停止的方法為打開計(jì)算機(jī)管理,在Internet信息服務(wù)上單擊右鍵,選擇重新啟動(dòng)IIS服務(wù),在選項(xiàng)中點(diǎn)停止IIS服務(wù),確定即可(見圖10)。)
3.3 更改組件服務(wù)中的密碼
更改組件服務(wù)中的密碼操作方法為:『開始』→『運(yùn)行』→輸入“CMD回車”,打開命令提示符,輸入“cd c:\\inetpub\\adminscripts”,然后輸入:cscript.exe synciwam.vbs –v。系統(tǒng)提示如圖11所示:
如出現(xiàn)圖11所示信息(注:不同機(jī)子顯示會(huì)略有不同,以不出現(xiàn)錯(cuò)誤信息提示為準(zhǔn)?。?,則active directory、iis metabase數(shù)據(jù)庫和com+應(yīng)用程序三方密碼修改的操作正確且完成,重新啟動(dòng)IIS,即可訪問網(wǎng)站能。
在更改組件服務(wù)中的密碼時(shí),如果操作不正確,會(huì)出現(xiàn)錯(cuò)誤提示,具體的錯(cuò)誤信息有兩類:
第一類,在執(zhí)行修改組件服務(wù)中的密碼時(shí),提示在在最后一行顯示“error:80110414”錯(cuò)誤。此錯(cuò)誤產(chǎn)生的的原因是在執(zhí)行修改組件服務(wù)中的密碼前,沒有將Internet信息服務(wù)停止。先將Internet信息服務(wù)停止,這時(shí)IWAM帳號(hào)可能也被鎖定了,需要去『管理』界面的『用戶』里把IWAM帳號(hào)解鎖。因此,在運(yùn)行synciwam.vbs之前,必須保證IIS metabase數(shù)據(jù)庫與Active Directory中的IWAM密碼已經(jīng)一致。因?yàn)閟ynciwam.vbs腳本是從IIS metabase數(shù)據(jù)庫而不是從Active Directory取得IWAM賬號(hào)的密碼,如果IIS metabase中的密碼不正確,那synciwam.vbs取得的密碼也會(huì)不正確,同步操作執(zhí)行到“Updating Applications”系統(tǒng)就會(huì)報(bào)80110414錯(cuò)誤,即“找不到應(yīng)用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}”。
第二類,在執(zhí)行修改組件服務(wù)中的密碼時(shí),提示在在最后一行顯示“error:8004e00f”錯(cuò)誤。這種類錯(cuò)誤提示屬于“MSDTC服務(wù)(Microsoft 分布式事務(wù)協(xié)調(diào)程序)不正?!?,可以進(jìn)入『事件查看器』查找到報(bào)錯(cuò)信息。具體的解決方法如下:
②停止MSDTC服務(wù):net stop msdtc
③卸載MSDTC服務(wù):msdtc–uninstall
④重新安裝MSDTC服務(wù):msdtc–install
確認(rèn)在事件查看器中msdtc服務(wù)已經(jīng)正常啟動(dòng),再進(jìn)行同步密碼的操作。
在XP操作系統(tǒng)中,用戶如果采用密碼同步仍然不能解決IIS的HTP 500內(nèi)部服務(wù)器錯(cuò)誤問題,可采用臨時(shí)解決方法,即右鍵點(diǎn)擊站點(diǎn),選擇“屬性”,在“主目錄”標(biāo)簽下,有一個(gè)“應(yīng)用程序保護(hù)”,將其改為“低(IIS進(jìn)程)”即可,如有虛擬目錄,也要改。這樣應(yīng)該可以正常訪問了,當(dāng)然,從安全角度來說,這只是臨時(shí)解決方法,如果按上面的方法你嘗試不成功,最后還是得重裝IIS。
參考文獻(xiàn):
[1]微軟網(wǎng)站http://support.microsoft.com/default.aspx?scid=kb;zh-cn;297989.
作者簡(jiǎn)介:周建明(1969-),男,安徽壽縣人,云南能源職業(yè)技術(shù)學(xué)院計(jì)算機(jī)與信息工程系主任,主要從事計(jì)算機(jī)科技術(shù)教育教學(xué)理論研究。