2011-01-11 11 views
10

私はC#プロジェクトで例外を取得しています:System.Runtime.InteropServices.COMException(0x80040154):

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {877AA945-1CB2-411C-ACD7-C70B1F9E2E32} failed due to the following error: 80040154.

それが何を意味するのだろうか?

+0

最近、Googleの検索結果は43,800件しかありません。 –

答えて

28

これは、クラスID 877AA945-1CB2-411C-ACD7-C70B1F9E2E32がレジストリにないことを意味します。

regedit.exeを開き、HKEY_CLASSES_ROOT\CLSID\{877AA945-1CB2-411C-ACD7-C70B1F9E2E32}にアクセスして確認できます。 64ビットOS上で32ビットアプリケーションを実行している場合は、HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{877AA945-1CB2-411C-ACD7-C70B1F9E2E32}

が存在する場合は、それ以外の問題が発生している可能性があります。これを解決するには、通常、このCOMオブジェクトを配布するインストーラを実行します。あなたがDLLを持っておらず、dllがオブジェクトを実装していることがわかっている場合は、regsvr32.exe(または管理されたdllのregasm.exe)を実行できます。

+1

ありがとう、それはレジストリエントリが本当に私がdllを追跡するのを助けてくれることを知っている!私はWindowsプログラミングの初心者なのでどこを見てもわからなかった。 –

+0

この回答は私にも同様の問題を解決するのに役立つ –

+0

私は私の問題を解決するのを助けた。 – Vani

0

私はSeleniumでいくつかの自動テストを実行しており、同じ問題がありました。問題は、テスト設定で「デフォルトプロセッサアーキテクチャ」をx86に切り替えることで解決されました。

0

私の場合、クラスは正しく登録されていました。

しかしはクラスがに設定した使用アプリケーションのIISアプリケーションプールの32ビットアプリケーションプロパティを有効にします。それはアプリケーションが任意のCPU/64ビットモードで構築されたために見つかりませんでした。

設定32ビットアプリケーションを有効にするがこの問題を修正しました。

関連する問題