IIS5 HTTP500內(nèi)部錯(cuò)誤解決辦法
一.錯(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 during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
(二)安全日志記錄(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)行一下簡(jiǎ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ù)庫(kù)和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-995D-00C04FD919C1} ”(這里{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS Out-Of-Process Pooled Applications的KEY),不能轉(zhuǎn)入IIS5應(yīng)用程序,HTTP 500內(nèi)部錯(cuò)誤就這樣產(chǎn)生了。
三.解決辦法
知道了導(dǎo)致HTTP 500內(nèi)部錯(cuò)誤的原因,解決起來就比較簡(jiǎn)單了,那就是人工同步IWAM賬號(hào)在Active Directory、IIS metabase數(shù)據(jù)庫(kù)和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_MYSERVER賬號(hào)密碼提供一個(gè)顯式的用戶接口,只隨IIS5提供了一個(gè)管理腳本adsutil.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)用程序”->“Out-Of-Process Pooled Applications”,右擊“Out-Of-Process Pooled Applications”->“屬性”。
(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:\inetpub\adminscripts子目錄下(位置可能會(huì)因你安裝IIS5時(shí)設(shè)置的不同而有所變動(dòng))。
synciwam.vbs腳本用法比較簡(jiǎn)單:
cscript synciwam.vbs [-v|-h]
“-v”參數(shù)表示詳細(xì)顯示腳本執(zhí)行的整個(gè)過程(建議使用),“-h”參數(shù)用于顯示簡(jiǎn)單的幫助信息。
我們要同步IWAM_MYSERVER賬號(hào)在COM+應(yīng)用程序中的密碼,只需要執(zhí)行“cscript synciwam.vbs -v”即可,如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v
Microsoft ® Windows Script Host Version 5.6
版權(quán)所有© 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ù)庫(kù)找到IWAM賬號(hào)"IWAM_MYSERVER"并取出對(duì)應(yīng)的密碼“Aboutnt2001”,然后查找所有已定義的IIS Applications和Out of process applications,并逐一同步每一個(gè)Out of process applications應(yīng)用程序的IWAM賬號(hào)密碼。
使用synciwam.vbs腳本時(shí),要注意一個(gè)問題,那就是在你運(yùn)行synciwam.vbs之前,必須保證IIS metabase數(shù)據(jù)庫(kù)與Active Directory中的IWAM密碼已經(jīng)一致。因?yàn)閟ynciwam.vbs腳本是從IIS metabase數(shù)據(jù)庫(kù)而不是從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}”。
好了,到現(xiàn)在為止,IWAM賬號(hào)在Active Directory、IIS metabase數(shù)據(jù)庫(kù)和COM+應(yīng)用程序三處的密碼已經(jīng)同步成功,你的ASP程序又可以運(yùn)行了!
IIS 500內(nèi)部錯(cuò)誤之解決辦法
問題起因:
IIS已經(jīng)啟動(dòng)但是web無法使用 IE返回500內(nèi)部錯(cuò)誤 記錄如下
由于在下列系統(tǒng) API 錯(cuò)誤,COM+ 服務(wù)無法初始化。它通常是由本地計(jì)算機(jī)的系統(tǒng)資源存儲(chǔ)問題引起的。
CryptAcquireContext
進(jìn)程名稱: dllhost.exe
該錯(cuò)誤的嚴(yán)重性已導(dǎo)致進(jìn)程終止。
錯(cuò)誤代碼= 0x80090017 : 提供程序類型未被定義。
COM+ 服務(wù)內(nèi)部信息:
文件: .\security.cpp, 行: 615
服務(wù)器 {3D14228D-FBE1-11D0-995D-00C04FD919C1} 沒有在限定的時(shí)間內(nèi)用 DCOM 注冊(cè)。
服務(wù)器未能轉(zhuǎn)入應(yīng)用程序 ‘/LM/W3SVC/1/ROOT/webmail‘。錯(cuò)誤是 ‘服務(wù)器運(yùn)行失敗
‘。
若要獲取關(guān)于此消息的更多的信息,請(qǐng)?jiān)L問 Microsoft 聯(lián)機(jī)支持站點(diǎn):
http://www.microsoft.com/contentredirect.asp 。
答:
IIS 500內(nèi)部錯(cuò)誤之解決辦法(一.錯(cuò)誤表現(xiàn))
一.錯(cuò)誤表現(xiàn)
這個(gè)錯(cuò)誤發(fā)生時(shí)總會(huì)有三方面的表現(xiàn):一是IE中的最直接的表現(xiàn),也是最讓人看不懂的表現(xiàn);二是安全日志中的表現(xiàn),IWAM_Machine賬號(hào)登錄失敗;三是系統(tǒng)日志中的表現(xiàn),IIS Out-Of-Process Pooled Applications應(yīng)用程序因啟動(dòng)賬號(hào)的錯(cuò)誤而不能夠啟動(dòng).從而造成ASP頁面瀏覽錯(cuò)誤.
(一)IE中的表現(xiàn)
當(dāng)瀏覽以前能夠正常運(yùn)行的asp頁面時(shí)會(huì)出現(xiàn)如下的錯(cuò)誤:
(1)
網(wǎng)頁無法顯示
您要訪問的網(wǎng)頁存在問題,因此無法顯示。
---------------------------------------------
請(qǐng)嘗試下列操作:
打開
http://127.0.0.1 主頁,尋找指向所需信息的鏈接。
單擊刷新按鈕,或者以后重試。
HTTP 500 - 內(nèi)部服務(wù)器錯(cuò)誤
Internet 信息服務(wù)
--------------------------------------------------------------------------------
技術(shù)信息(支持個(gè)人)
詳細(xì)信息:
Microsoft 支持
[注意,這兒只是500錯(cuò)誤,不是500.xx等錯(cuò)誤的,那些錯(cuò)誤主要是asp編程問題,與iis沒有太大的關(guān)系,只有500錯(cuò)誤是由iis自身造成的]
(2)
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.
(二)安全日志記錄(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
注:IWAM_MYSERVER,啟動(dòng)進(jìn)程之外的應(yīng)用程序的 Internet 信息服務(wù)的內(nèi)置賬號(hào),安裝IIS時(shí)自動(dòng)建立,其密碼由IIS控制.
(三)系統(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 。
注:3D14228D-FBE1-11D0-995D-00C04FD919C1}實(shí)際是IIS Out-Of-Process Pooled Applications 的KEY.也就是代表IIS Out-Of-Process Pooled Applications.
================================
IIS 500內(nèi)部錯(cuò)誤之解決辦法(二.錯(cuò)誤原因與解決辦法)
出現(xiàn)IIS 500內(nèi)部錯(cuò)誤的原因有多個(gè),但最主要的原因是IWAM_MACHINE賬號(hào)在Active Directory(或SAM),IIS的metabase數(shù)據(jù)庫(kù)與COM+組件中的密碼不匹配不同步最成的.因此解決問題的關(guān)鍵在于使這三方的密碼同步起來.
要使這三方的密碼同步,有幾種辦法,下面只介紹最好用的一種,使用IIS自帶的腳本進(jìn)行密碼同步(看來微軟早就知道這方面的問題了,因此專門做了一個(gè)密碼同步的腳本.):
操作如下:
1.在本地賬號(hào)管理器或AD用戶與計(jì)算機(jī)中更改IWAM_MACHINE賬號(hào)的密碼.假設(shè)我們改為"12345678".[本來這個(gè)賬號(hào)是計(jì)算機(jī)控制的,非常復(fù)雜].
2.使用新的密碼重設(shè)IIS Metabase數(shù)據(jù)庫(kù).我們需要使用IIS自帶的管理腳本adsutil.運(yùn)行如下的命令:
c:\Inetpub\AdminScripts> adsutil SET w3svc/WAMUserPass 12345678
系統(tǒng)會(huì)顯示:
WAMUserPass: (String) "12345678"
提示密碼更新成功.
通常情況下IIS會(huì)自動(dòng)與系統(tǒng)賬號(hào)等信息同步,但我發(fā)現(xiàn)我的機(jī)器上ISUR_MACHINE是同步的,但I(xiàn)WAM_MACHINE總是不同步,因此只好自行修改了.
3.同步COM+賬號(hào)密碼
同樣我們要用到IIS的管理腳本synciwam.vbs,這個(gè)腳本通常會(huì)存在于c:\inetpub\adminscripts下,上一個(gè)管理腳本也在這兒放著.
命令如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v
-v參數(shù)是打開詳細(xì)模式,讓我們看到更新的過程,通常會(huì)如下顯示:
Microsoft ® Windows Script Host Version 5.6
版權(quán)所有© Microsoft Corporation 1996-2000。保留所有權(quán)利。
WamUserNameIWAM_MYSERVER
WamUserPass12345678
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}
密碼同步成功.如果不成功先看一下這個(gè)腳本取的IIS的密碼正確不正確,如果不正確請(qǐng)重復(fù)第二步同步IIS密碼.
問題解悶,再打開IIS看看,ASP程序應(yīng)該能夠正常瀏覽了.