2016-04-07 131 views
0

これはとてもホットな話ですが、私が見た解決策はありません。COMクラスファクトリの取得に失敗しました。クラスは登録されていません

私のWebアプリケーションは、PolarZIPを使用して、エンドユーザとの間でやりとりされるXMLファイルの圧縮と解凍を処理します。私のプロジェクトにはPolarZIP.dllへの参照はなく、この作業を行うクラスには何も使われていませんが、ライブサーバーではアプリケーションは正しく動作します。局所的には、できるだけ早くそれがこのPolarZIPオブジェクトをインスタンス化しようとして、私はこの例外を取得:

Retrieving the COM class factory for component with CLSID {9A00B901-D104-11D4-B8F7-080030001D26} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

これは私が見つけることができる最も人気のあるスレッドです:

Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154

しかし、中に私のプロジェクトのすべての設定します(Any CPUの代わりに)x86用のソリューションは状況を悪化させました。代わりにアプリケーションを起動すると、この新しいサーバーエラーが発生します。この新しいサーバーエラーが発生しました。この新しいサーバーエラーが発生しました。このエラーを引用している他のほとんどの質問は、私が上にリンクしたものの重複としてフラグを立てるか、まったく答えがありません 私はC:\Windows\SysWOW64\フォルダにPolarZIP.ocxを持っています。ソフトウェアは正しく機能します)。

アイデア?

編集;それが重要ならばCLSID 9A00B901-D104-11D4-B8F7-080030001D26がregeditに現れます。名前:(デフォルト)、タイプ:REG_SZ、データ:PolarZIPコントロール

+0

このコンポーネントを使用するには、32ビットモードでWebアプリを実行する必要があります。ヒットのためのGoogleの "32ビットモードでのWebアプリケーションの実行" –

+0

私のアプリケーションが使用するアプリケーションプールのIISで '32ビットアプリケーションを有効にする'が 'true'に設定されています – sab669

+0

これは例外ではありません。あなたはx86を強制し、サーバはそれを気に入らない。あなたの質問からそのような本質的な詳細を省略する理由を推測するのは難しいです。少し移動すると、画面が表示されません。 –

答えて

0

ファイルをコピーするだけでは不十分です - ライブラリを登録する必要があります。これは通常、インストーラによって処理されます。ファイルのコピーは、通常、悪い考えです。インストーラを使用するオプションがない場合は、regsvr32.exeを参照してください。対処が必要な追加の手順や、インストールが必要な依存関係があることは非常によくあります。

また、ビット数が正しいことを確認してください。 32ビットアプリケーションは64ビットCOMコンポーネントにアクセスできず、その逆もありません。

+0

コマンドラインから '%systemroot%\ SysWOW64 \ regsvr32 C:\ Windows \ SysWOW64 \ PolarZIP.ocx'を実行しようとしましたが、正常に登録されたと言われました。これはおそらく32ビットのライブラリですが、私が言及したように具体的にはx86用のアプリケーションを構築することはできません:/ – sab669

+0

@ sab669それは今までのところどこでもうまく機能しています。 64ビットプロセスで32ビットCOMライブラリを使用することはできません。それが必要な場合は、COMオブジェクトを処理するためにプロキシ32ビットプロセスを作成する必要があります。私は賛成です。ネイティブ(つまり、.NETネイティブ)ソリューションを使用する方が良いアイデアかもしれません。 'DeflateStream'や' ZipArchive'の何が問題なのですか? – Luaan

+0

ネイティブソリューションを調べる必要がありますが、ローカルサーバーではなくライブサーバーで機能するということは非常に奇妙です。私は、そのセットアップの完全なイン/アウトを知らない。まだ比較的新しい(1年未満)。何年前にこのような決定が下されたときに、なぜ彼らがこの図書館を使用することにしたのかは分かりません。しかし、おそらく私は、なぜ私はこのライブラリを使用することができないのか理解しようとするのではなく、何をする必要があるためにネイティブの.NETソリューションを調べることができます。私がする必要があるのは、zipを受け入れ、解凍して、XMLファイルをとにかく検証することだけです... – sab669

-1

「Depends.exe」を使用して、依存ライブラリが見つからないことを確認しましたか?

関連する問題