残念ながら、その HRESULT は "問題が発生しました" エラー コードです。私は提案します:
- システムとアプリケーションのイベント ログをチェックして、より適切なエラー メッセージが記録されているかどうかを確認します。
- COM コンポーネントのアプリケーション固有のエラー ログを確認します。
どちらの方法でも問題の原因が明らかにならない場合は、COM アセンブリをコンポーネント サービス パッケージに追加することを検討してください。これにより、システムを再起動することなく、シャットダウンして再起動するのがはるかに簡単になります。
OS によって異なります (これは Windows 7 のものですが、ほとんどは似ています)。
- コンポーネント サービスを開始します (通常は管理ツールの下にあります)。
- コンポーネント サービス、コンピューター、マイ コンピューター、COM+ アプリケーションにドリルダウンします。
-
- 右クリックして新しいアプリケーションを追加します。
- 空のアプリケーションを作成することを選択します。これにより、ここで実行する COM コンポーネントを選択できます。
- アプリケーションに名前を付ける
- COM コンポーネントについてよく知らない場合は、サーバー アプリケーションを選択して開始することをお勧めします。これにより、呼び出し元のプロセス外で開始されます。これが機能しない場合 (呼び出しが失敗するなど)、このアプリケーションを削除し、ライブラリ アプリケーションとして再試行してください。
- サービスの資格情報を選択します。Network Service はおそらく最も安全な選択 (アクセス許可が最も少ないなど) ですが、要件が何であるかはわかりません。ハードウェアなどにアクセスしている場合は、ドメイン アカウントまたは LocalSystem を指定する必要がある場合があります。
- ウィザードを終了します (詳細な制御が必要な場合は、これらに再度アクセスする必要がある場合があります)。
- 新しいアプリケーションにドリルダウンし、Components フォルダーを見つけます。
- 右クリックして [新しいコンポーネント] を選択します
- COM コントロールが既に登録されている場合は、[コンポーネントのインポート] を選択します。そうでない場合は、コンポーネントのインストールを選択します
- 気になるコンポーネントを選択します。相互に関連するすべてのコンポーネントを同じアプリケーションに組み込むことが非常に重要であることに注意してください。そうしないと、古い COM アセンブリが正しく動作しない可能性があります
- ウィザードを終了します。ツリー ビューの COM+ アプリケーション レベルに戻ると、新しいアプリケーションがアニメーション化されていないアイコンで表示されます。
呼び出し元のコードを変更する必要はありません。サービスにリクエストを送信し、マネージャに戻ります。COM+ アプリケーションが起動すると、アイコンがアニメーション表示されます。必要に応じて、ここから再起動することもできます。
スピンダウン時間とプーリングに関する多くの構成オプションがあるため、たとえば、COM DLL が特定の期間後にのみ問題を引き起こすことがわかった場合に役立ちます。