天天看點

實戰解決IIS伺服器的“HTTP 500 内部伺服器錯誤”

   我在網上查了一下“HTTP 500 内部伺服器錯誤”的原因之後,并在試了網上衆多的方法,但是都不行,甚至有的網友得出“隻有重裝系統才能解決辦法”的結論,我在多次實驗過後,終于得出了真正的解決辦法,辦法如下:

1.運作—〉cmd—〉輸入net start msdtc,出現了該服務不能啟動的錯誤提示。

2.删除系統資料庫中的鍵:

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC 

 HKEY_CLASSES_ROOT\CID

3.停止MSDTC服務:net stop msdtc

4.解除安裝MSDTC服務:msdtc -uninstall

5.重新安裝MSDTC服務:msdtc -install

6. 重新開機電腦

7.啟動該服務:net start msdtc

8.重新設定IIS的IWAM賬号密碼。(在計算機管理中的使用者管理裡),如下圖:

9.同步IIS metabase中IWAM_MYSERVER的密碼,在CMD中:c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass "yourpassword"

10.同步COM+應用程式所用的IWAM_MYSERVER密碼,在CMD中:c:\inetpub\adminscripts>cscript synciwam.vbs -v

附:網上關于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 Applications啟動失敗,也就是我們在ID10004錯誤事件中看到的“不能運作伺服器{3D14228D-FBE1-11D0-995D-00C04FD919C1} ”(這裡{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS Out-Of-Process Pooled Applications的KEY),不能轉入IIS5應用程式,HTTP 500内部錯誤就這樣産生了。 

本文轉自 victoryan 51CTO部落格,原文連結:http://blog.51cto.com/victoryan/44323