0

COM+ サービスを介して VB コンポーネントによって消費される .NET 3.5 コンポーネントがあります。以下の手順に従って、dll を登録し、

  1. メイン dll とその依存 dll に対して Regasm.exe /tlb と Regasm.exe /tlb /codebase を実行しました。
  2. COM+ で .NET dll を使用する登録済みの VB コンポーネント dll。
  3. 手順 1 を使用して、SEAC の dotnet dll を登録しました。
  4. IISRESET

同じ設定のサーバーが 3 台あります。それらは、開発サーバー、テスト サーバー、ステージ サーバーです。開発およびテストサーバーでは正常に機能しており、ステージサーバーでは次の例外が発生しています。

Error#2146233079: Automation error

この問題を解決するために、次のことを行いました。しかし、運がありません。

  1. 開発サーバーからアプリのすべてのドット ネットと vb dll を取得し、ステージ サーバーにデプロイして、他の DLL を dev にデプロイするためのプロセスに従いましたが、同じ問題に直面しています。
  2. テストサーバーを使用して同じプロセスを繰り返します。しかし、まだ同じ問題に直面しています
  3. レジストリをチェックインして、.net フレームワーク 2.0、3.5 の可用性を確認しました (ここで考えられるのは、フレームワークが適切にインストールされているかどうかだけです)。それらは適切にインストールされているようです
  4. Stageサーバーを一度再起動して、古いレジストリエントリをすべて消去してから、dllを新たに登録しました.それでもうまくいきません
  5. .Net 3.5 exe を作成し、217 サーバーで実行して、.Net 3.5 が正しくインストールされているかどうかを確認します。完璧にインストールされているようです。

この問題を克服するために助けてください。

4

1 に答える 1

0

私はこの問題を解決しました。

根本原因と解決策:
.NET dll の 1 つがそのマシンにありません。通常、開発とテストでは、.NET フレームワークと Visual Studio をインストールしました。ただし、ステージおよび本番環境では、Visualstudio スイート全体ではなく、.NET フレームワークのみをインストールしました。それが原因ではないかと私たちは疑っています。そのコンポーネントをステージ マシンとプロダクション マシンの GAC に登録し、問題は解決しました。

クラック方法
(1) どのアクションで問題が発生したかを特定し、.NET コンポーネントのインスタンスを作成する VB コンポーネントと .NET コンポーネント関数を呼び出す VB コンポーネントのインターフェイスにログを配置し、どの関数がエラーを発生させているかを認識しました。

(2) その関数に try catch を配置し、例外メッセージを外部ファイルに記録しました。

(3) 例外メッセージにより、特定の dll が見つからないことを確認しました

于 2013-04-03T17:25:02.877 に答える