IWAM賬號 HTTP500內部錯誤

轉自CSDN:     
    
  在詳細分析HTTP500內部錯誤產生的原因之前,先對IWAM賬號進行一下簡要的介紹:IWAM賬號是安裝IIS5時系統自動建立的一個內置賬號,主要用於啓動進程之外的應用程序的I   nternet信息服務。IWAM賬號的名字會根據每臺計算機NETBIOS名字的不同而有所不同,通用的格式是IWAM_MACHINE,即由 “IWAM”前綴、連接線“_   ”加上計算機的NETBIOS名字組成。我的計算機的NETBIOS名字是MYSERVER,因此我的計算機上IWAM賬號的名字就是 IWAM_MYSERVER,這一點與I   IS匿名賬號ISUR_MACHINE的命名方式非常相似。    
   
   
  IWAM賬號建立後被Active   Directory、IIS   metabase數據庫和COM+應用程序三方共同使用,賬號密碼被三方分別保存,並由操作系統負責這三方保存的IWAM密碼的同步工作。按常理說,由操作系統負責的工作我們大可放心,不必擔心出錯,但不知是B   UG還是其它什麼原因,系統的對IWAM賬號的密碼同步工作有時會失敗,使三方IWAM賬號所用密碼不統一。當IIS或COM+應用程序使用錯誤I   WAM的密碼登錄系統,啓動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內部錯誤就這樣產生了。    
   
  知道了導致HTTP   500內部錯誤的原因,解決起來就比較簡單了,那就是人工同步IWAM賬號在Active   Directory、IIS   metabase數據庫和COM+應用程序中的密碼。    
   
  具體操作分三步,均需要以管理員身份登錄計算機以提供足夠的操作權限(IWAM賬號以IWAM_MYSERVER爲例)。    
   
   
  (一)更改Active   Directory中IWAM_MYSERVER賬號的密碼    
   
  因IWAM賬號的密碼由系統控制,隨機產生,我們並不知道是什麼,爲完成下面兩步的密碼同步工作,我們必須將IWAM賬號的密碼設置爲一個我們知道的值。    
   
  1、選擇“開始”->“程序”->“管理工具”->"Active   Directory用戶和計算機",啓動“Active   Directory用戶和計算機”管理單元。    
   
  2、單擊“user”,選中右面的“IWAM_MYSERVER”,右擊選擇“重設密碼(T)...”,在跳出的重設密碼對方框中給 IWAM_MYSERVER設置新的密碼,這兒我們設置成“Aboutnt2001”(沒有引號的),確定,等待密碼修改成功。    
   
   
  (二)同步IIS   metabase中IWAM_MYSERVER賬號的密碼    
   
  可能因爲這項改動太敏感和重要,微軟並沒有爲我們修改IIS   metabase中IWAM_MYSERVER賬號密碼提供一個顯式的用戶接口,只隨IIS5提供了一個管理腳本adsutil.vbs,這個腳本位於 C:\inetpub\adm   inscripts子目錄下(位置可能會因你安裝IIS5時設置的不同而有所變動)。    
   
  adsutil.vbs腳本功能強大,參數非常多且用法複雜,這裏只提供使用這個腳本修改IWAM_MYSERVER賬號密碼的方法:    
   
  adsutil   SET   w3svc/WAMUserPass   Password    
   
  "Password"參數就是要設置的IWAM賬號的新的密碼。因此我們將IIS   metabase中IWAM_MYSERVER賬號的密碼修改爲“Aboutnt2001”的命令就是:    
   
  c:\Inetpub\AdminScripts>adsutil   SET   w3svc/WAMUserPass   "Aboutnt2001"    
   
  修改成功後,系統會有如下提示:    
   
  WAMUserPass:   (String)   "Aboutnt2001"    
   
   
  (三)同步COM+應用程序所用的IWAM_MYSERVER的密碼    
   
  同步COM+應用程序所用的IWAM_MYSERVER的密碼,我們有兩種方式可以選擇:一種是使用組件服務MMC管理單元,另一種是使用IWAM賬號同步腳本s   ynciwam.vbs。    
   
   
  1、使用組件服務MMC管理單元    
   
  (1)啓動組件服務管理單元:選擇“開始”->“運行”->“MMC”,啓動管理控制檯,打開“添加/刪除管理單元”對話框,將“組件服務”管理單元添加上。    
   
  (2)找到“組件服務”->“計算機”->“我的電腦”->“COM+應用程序”->“Out-Of-Process   Pooled   Applications”,右擊“Out-Of-Process   Pooled   Applications”->“屬性”。    
   
  (3)切換到“Out-Of-Process   Pooled   Applications”屬性對話框的“標誌”選項卡。“此應用程序在下列賬戶下運行”選擇中“此用戶”會被選中,用戶名是“IWAM_MYSERVE   R”。這些都是缺省的,不必改動。在下面的“密碼”和“確認密碼”文本框內輸入正確的密碼“Aboutnt2001”,確定退出。    
   
  (4)系統如果提示“應用程序被一個以上的外部產品創建。你確定要被這些產品支持嗎?”時確定即可。    
   
  (5)如果我們在IIS中將其它一些Web的“應用程序保護”設置爲“高(獨立的)”,那麼這個WEB所使用的COM+應用程序的IWAM賬號密碼也需要同步。重複(1   )-(4)步,同步其它相應Out   of   process   application的IWAM賬號密碼。    
   
   
  2、使用IWAM賬號同步腳本synciwam.vbs    
   
  實際上微軟已經發現IWAM賬號在密碼同步方面存在問題,因此在IIS5的管理腳本中單獨爲IWAM賬號密碼同步編寫了一個腳本synciwam.vbs   ,這個腳本位於C:\inetpub\adminscripts子目錄下(位置可能會因你安裝IIS5時設置的不同而有所變動)。    
   
  synciwam.vbs腳本用法比較簡單:    
   
  cscript   synciwam.vbs   [-v|-h]    
   
  “-v”參數表示詳細顯示腳本執行的整個過程(建議使用),“-h”參數用於顯示簡單的幫助信息。    
   
   
  我們要同步IWAM_MYSERVER賬號在COM+應用程序中的密碼,只需要執行“cscript   synciwam.vbs   -v”即可,如下:    
   
  cscript   c:\inetpub\adminscripts\synciwam.vbs   -v    
   
  Microsoft   (R)   Windows   Script   Host   Version   5.6    
   
  版權所有(C)   Microsoft   Corporation   1996-2000。保留所有權利。    
   
   
  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}    
   
   
  從上面腳本的執行情況可以看出,使用synciwam.vbs腳本要比使用組件服務的方法更全面和快捷。它首先從IIS的metabase數據庫找到 IWA   M賬號"IWAM_MYSERVER"並取出對應的密碼“Aboutnt2001”,然後查找所有已定義的IIS   Applications和Out   of   process   applications,並逐一同步每一個Out   of   process   applications應用程序的IWAM賬號密碼。    
   
  使用synciwam.vbs腳本時,要注意一個問題,那就是在你運行synciwam.vbs之前,必須保證IIS   metabase數據庫與Active   Directory中的IWAM密碼已經一致。因爲synciwam.vbs腳本是從IIS   metabase數據庫而不是從Active   Directory取得IWAM賬號的密碼,如果IIS   metabase中的密碼不正確,那synciwam.vbs取得的密碼也會不正確,同步操作執行到“Updating   Applications”系統就會報80110414錯誤,即“找不到應用程序{3D14228D-FBE1-11D0-995D- 00C04FD919C1}”。    
   
  好了,到現在爲止,IWAM賬號在Active   Directory、IIS   metabase數據庫和COM+應用程序三處的密碼已經同步成功,你的ASP程序又可以運行了!  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章