IIS-DCOM“登錄失敗: 未知的用戶名或錯誤密碼“ 解決方法

 DCOM 遇到錯誤“登錄失敗: 未知的用戶名或錯誤密碼
並且無法登錄到 ./IWAM_PC-HANXIN 上以運行服務器:
{3D14228D-FBE1-11D0-995D-00C04FD919C1}
在瀏覽器中:
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.


二、原因分析

綜合分析上面的錯誤表現我們可以看出,主要是由於IWAM賬號(在我的計算機即是IWAM_MYSERVER賬號)的密碼錯誤造成了HTTP 500內部錯誤。

在詳細分析HTTP500內部錯誤產生的原因之前,先對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內部錯誤就這樣產生了。


三、解決辦法:

1、重設IWAM密碼

打開我的電腦"管理",切換到"本地用戶和組",單擊"用戶"選中"IWAM_computer_name"用戶,右擊選擇"設置密碼",在跳出的重設密碼對方框中給IWAM_computer_name設置新的密碼,這兒我們設置成"rock2006"(沒有引號的),確定,等待密碼修改成功。

2、同步IIS metabase中IWAM_computer_name賬號的密碼

可能因爲這項改動太敏感和重要,微軟並沒有爲我們修改IIS metabase中IWAM_computer_name賬號密碼提供一個顯式的用戶接口,只隨IIS5提供了一個管理腳本adsutil.vbs,這個腳本位於C:/inetpub/AdminScripts子目錄下(位置可能會因你安裝IIS5時設置的不同而有所變動)。

adsutil.vbs腳本功能強大,參數非常多且用法複雜,這裏只提供使用這個腳本修改IWAM_computer_name賬號密碼的方法:

進入在cmd下進入C:/inetpub/AdminScripts
cd C:/inetpub/AdminScripts
C:/inetpub/AdminScripts>adsutil SET w3svc/WAMUserPass Password "rock2006"

修改成功後,系統會有如下提示:

WAMUserPass                       : (STRING) "**********"

3、同步COM+應用程序所用的IWAM_computer_name的密碼

同步COM+應用程序所用的IWAM_computer_name的密碼,我們使用組件服務MMC管理單元。

(1)、打開控制面板,進入管理工具,找到“組件服務”->“計算機”->“我的電腦”->“COM+應用程序”->“Out-Of-Process Pooled Applications”,右擊“Out-Of-Process Pooled Applications”->“屬性”。

(2)、切換到“Out-Of-Process Pooled Applications”屬性對話框的“標誌”選項卡。“此應用程序在下列賬戶下運行”選擇中“此用戶”會被選中,用戶名是“IWAM_computer_name”。這些都是缺省的,不必改動。在下面的“密碼”和“確認密碼”文本框內輸入正確的密碼“rock2006”,確定退出。

(3)、系統如果提示“應用程序被一個以上的外部產品創建。你確定要被這些產品支持嗎?”時確定即可。

如果我們在IIS中將其它一些Web的“應用程序保護”設置爲“高(獨立的)”,那麼這個WEB所使用的COM+應用程序的IWAM賬號密碼也需要同步。重複(1)-(3)步,同步其它相應Out of process application的IWAM賬號密碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章