1

タイトルにあるように、ASP.NETMVCアプリから次のようにCOMオブジェクトをインスタンス化したいと思います。

dynamic obj = Activator.CreateInstance(Type.GetTypeFromProgID(progID));

ただし、次のComExceptionがスローされます。

CLSID {16542E4F-4594-4B97-922D-BE9C478F93BB}を持つコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:800aea5f HRESULTからの例外:0x800AEA5F。

同じコードが、次のビルド構成のWinformsアプリから機能します:Platform: x86およびPlatform target: x86

ビルド構成を、MVCアプリとCOMオブジェクトを使用するアセンブリの両方のWinformsアプリと同じように設定しました。

私はWindows7、IIS 7.5、ASP.NET v4.0アプリケーションプールを使用しており、32ビットアプリケーションを有効にします。Trueで、Webサイトは管理者権限を持つユーザーの下で実行されます。

この問題を解決するためのあなたの提案は何ですか?

4

2 に答える 2

0

アプリケーション プールのデフォルト ユーザーを管理者権限を持つユーザーに設定します。

于 2012-05-08T18:18:47.237 に答える
0

@david.sスクリーンショットをコメントとして追加する方法がわからないので、回答として設定しました。すでにすべての 32 ビットのものを設定しており、DLL を呼び出すことができないため、アクセス許可の問題である可能性があります。

dcomcnfg.exe を呼び出して、設定を確認します (申し訳ありませんが、ドイツのサーバーのみですが、動作するはずです)。 ここに画像の説明を入力

設定を変更したら、IIS をリセットする必要があります。

于 2012-05-06T16:31:58.687 に答える