標籤:iis asp 500內部錯誤
今天嘗試在win2003系統下建立ASP網站,結果在訪問時出現了“500-內部錯誤”。
經過多番上網尋找解決方案和大量嘗試,總算解決了這一問題。
IIS500錯誤,是因為微軟的一個BUG所造成的,主要是由於IWAM帳號的密碼錯誤造成了HTTP 500內部錯誤。
在詳細分析HTTP500內部錯誤產生的原因之前,先對IWAM帳號進行一下簡要的介紹:IWAM帳號是安裝IIS5時系統自動建立的一個內建帳號,主要用於啟動進程之外的應用程式的Internet資訊服務。IWAM帳號的名字會根據每台電腦NETBIOS名字的不同而有所不同,通用的格式是 IWAM_MACHINE,即由“IWAM”首碼、連接線“_”加上電腦的NETBIOS名字組成。這一點與IIS匿名帳號IUSR_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 Applications啟動失敗,也就是我們在ID10004錯誤事件中看到的“不能運行伺服器{3D14228D-FBE1-11D0-995D- 00C04FD919C1} ”(這裡{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS Out-Of-Process Pooled Applications的KEY),不能轉入IIS5應用程式,HTTP 500內部錯誤就這樣產生了。
解決辦法分三步:首先,手動設定IWAM和IUSR的密碼,然後,同步IIS中該密碼,最後,同步COM+中該密碼。
一、手動設定IWAM和IUSR的密碼
依次開啟控制台-管理工具-電腦管理-本機使用者和組-使用者,更改以IWAM和IUSR開頭使用者的密碼,設為一致。這裡假設為"password"
二、同步IIS中的密碼
使用c:\Inetpub\AdminScripts下面提供的adsutil.vbs指令碼設定密碼。在命令列中使用:
adsutil set w3svc/wamuserpass "password"
cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password"
三、同步COM+中的密碼
使用c:\Inetpub\AdminScripts下面提供的synciwam.vbs指令碼。在命令列中使用:
synciwam.vbs -v
經過以上三步,再訪問asp網站即可正常使用了。
本文出自 “Accplayer的小地方” 部落格,請務必保留此出處http://accplaystation.blog.51cto.com/9917407/1631760
解決win2003下IIS中建立ASP網站出現500內部錯誤的方法