win7組件服務COM+應用程序編錄錯誤解決辦法

原貼:http://blog.csdn.net/szjyy007/archive/2010/10/29/5974114.aspx

 

有時候在安裝某個應用程序的過程中會出現下面的錯誤提示:無法創建COM應用程序!但是可以在安裝程序完成後,使用組件服務控制檯創建空的COM應用程序,併爲其添加所需要的組件,但是在使用windows自帶的組件服務時,點擊COM+應用程序,會報編錄錯誤(我在安裝Ming-WebReport的時候就遇到了這樣的問題,後來經過一系列探索,成功解決,希望分享給有需要的人)。

      一般情況下,我們遇到過的COM+應用程序編錄錯誤共有兩個:(1)第一個是打開COM+應用程序時出現“編錄錯誤,執行最後操作發生錯誤,  錯誤代碼8007042C-依賴服務或組無法啓動,事件或日誌包含其他錯誤疑難信息”,

(2)第二個是打開COM+應用程序時出現“錯誤代碼8004E00F -COM+ 無法與 Microsoft 分佈式事務協調程序交談”。這個問題也是IIS常遇到的。

      對於第一個錯誤,解決辦法其實很簡單,只需將“服務”中的“System Event Notification Service”服務啓動即可,它是一個監視系統事件的COM+     事件系統服務,必須確保啓動。但是啓動後,再點擊或雙擊COM+應用程序時就可能出現第二個錯誤,對於第二個錯誤的解決辦法,網上有很多答案,(在已經安裝了IIS的情況下)現總結如下:

  (1)刪除註冊表中的鍵

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC 、

      HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC

      HKEY_CLASSES_ROOT/CID

  (2)在開紿—>運行 中依次輸入下列三行命令:

1、停止MSDTC服務:net stop msdtc

2、卸載MSDTC服務:msdtc -uninstall

3、重新安裝MSDTC服務:msdtc –install

  (3)啓動MSDTC服務:net start msdtc。MSDTC服務即Distributed Transaction Coordinator用來協調跨多個數據庫、消息隊列、文件系統等資源管理器的事務的服務。確認在事件查看器中msdtc服務已經正常啓動(這步很關鍵,如果沒有,重新啓動下電腦看看),這裏有個技巧,查看MSDTC服務是否啓動,執行net stop msdtc,提示正在停止和停止成功就對了,再msdtc - install下就OK. 如果在“COM+應用程序”中,沒有“IIS Out-Of-Process Pooled Applications”應用程序,進行如下操作:

開始菜單->運行->cmd打開命令提示窗口 輸入cd %windir%/system32/inetsrv切換到system32下inetsrv目錄 輸入rundll32 wamreg.dll, CreateIISPackage(注意:必須準確鍵入"CreateIISPackage"它區分大小寫),然後輸入regsvr32 asptxn.dll 關閉並重新打開"組件服務",問題解決。

    出現此錯誤的原因有多個,但最主要的原因是IWAM_MACHINE賬號在Active Directory(或SAM),IIS的metabase數據庫與COM+組件中的密碼不匹配不同步造成的。因此解決問題的關鍵在於使這三方的密碼同步起來。密碼同步的方法如下:

1.在本地賬號管理器中更改IWAM_MACHINE賬號的密碼.(即啓動IIS進程帳號)

2.使用新的密碼重設IIS Metabase數據庫.(即編輯匿名訪問使用的用戶帳號)

3.同步COM+應用程序賬號密碼

(一)更改IWAM_MACHINE賬號的密碼

1、選擇“開始—程序—管理工具—計算機管理—本地用戶和組—用戶”選中右面的“IWAM_MACHINE”右鍵選擇“設置密碼”這裏我們設置成test

(二)使用新的密碼重設IIS Metabase數據庫。(即編輯匿名訪問使用的用戶帳號)

方法一:在運行中輸入CMD:打開DOS命令後輸入C:/Inetpub/AdminScripts/adsutil SET w3svc/WAMUserPass "yourpassword"

方法二:選擇“默認Web 站點屬性—目錄安全性標籤—編輯—匿名訪問和驗證控制”在彈出的框中選中“匿名訪問”,單擊“編輯按鈕—用戶名瀏覽”,選擇“IWAM_MACHINE”,密碼框中輸入test,選中“允許IIS控制密碼—確定”。如果彈出對話框:“非本地用戶帳號不支持密碼同步。您真要繼續?”確定即可。確定關閉所有對話框。

(三)同步com+應用程序所用的IWAM_MACHINE的密碼

使用組件服務mmc管理單元

  (1)啓動組件服務管理單元:選擇“開始—運行—mmc”,啓動管理控制檯,打開“添加/刪除管理單元”對話框,將“組件服務”管理單元添加上。

  (2)找到“組件服務—計算機—我的電腦—com+應用程序—out-of-process pooled applications”,右擊“out-of-process pooled applications—屬性”。

  (3)切換到“out-of-process pooled applications”屬性對話框的“標識”選項卡。選擇“此用戶”,瀏覽,選擇用戶名“IWAM_MACHINE”。這些都是缺省的。在下面的“密碼”和“確認密碼”文本框內輸入正確的密碼“test”,確定退出。 

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

  (5)如果我們在IIS中將其它一些web的“應用程序保護”設置爲“高(獨立的)”,那麼這個web所使用的com+應用程序的iwam賬號密碼也需要同步。

以上第二個錯誤的解決辦法是在已經安裝好IIS的情況下,不過win7很多情況下IIS都沒有安裝(我的就是),這時解決這個問題就比較簡單了,只需要在啓動MSDTC服務後,安裝好IIS就可以啦,win7下安裝IIS的具體步驟是:依次打開“控制面板—程序—程序和功能”,點擊左側的“打開或關閉windows功能”,根據需要選擇Internet信息服務中功能,然後確定即可,問題解決,再點擊“com+應用程序”(有的可能需要重啓),應該不會出現以上的錯誤。

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/szjyy007/archive/2010/10/29/5974114.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章