0

asp クラシック アプリケーションで使用される Com+ VB6 DLL があります。IIS 6.0 と Windows Server 2003 にアップグレードした後、問題が発生しているようです。.NET (2.0) 機能にどのように置き換える必要がありますか?

  • ウェブサービス?
  • .NET の Com DLL?
  • 他のオプション?

ASPクラシックページを書き直すことは問題外であると仮定します。

編集: com アクセス可能なアセンブリとして書き直すと、Com+ で同じ問題が発生しませんか?

4

3 に答える 3

1

これは、COM コンポーネントが何をしているかに大きく依存しますが、最も単純なオプションはおそらく .NET の COM ライブラリでしょう。

これにより、呼び出し元のクライアント (ASP クラシック アプリ) への変更が最小限で済む可能性があります。VB 6 COM API と一致するように API をセットアップする場合、ほとんどの場合、代替品としてドロップする必要があります。

Web サービスまたはその他のオプションに移行すると、場合によってはよりクリーンになる可能性がありますが、アプリケーションにさらに変更を加える必要があります。これ以上の情報がなければ、これが価値があるかどうかを判断することは不可能です.

于 2009-05-07T17:44:07.493 に答える
1

com dll がどのように使用されているかによって異なります。従来の ASP アプリケーションを維持する必要があると想定しています。そうしないと、すべてを書き直すことになります。

com dll がサイトのセッションまたは http コンテキストで動作している場合、Web サービスは必要ありません。com コードを .NET ライブラリ アセンブリに移動し、それを相互運用 (tlbimport/tlbexport) に登録し、従来の ASP アプリで相互運用アセンブリを使用して、新しい .NET ライブラリとやり取りします。

于 2009-05-07T17:45:11.327 に答える
1

VB6 コンポーネントがいくつかの COM+ サービスを使用していると仮定しています。その場合、.NET で VB6 コンポーネントを ServicedComponent として書き直してから、Regsvcs.exe を使用して COM+ に登録します。

VB6 コンポーネントがデータベースにアクセスしている (またはアパートメント コールを長時間実行している) 場合、VB6 コンポーネントを .NET に移行することの追加の利点として、多数の同時接続がある場合にパフォーマンスの問題が解消されることがあります。コンポーネントへのリクエスト。その方法と理由の詳しい説明については、「 MTS から COM+ への移植時にアプリケーションのパフォーマンスを維持する」の記事の「シングル スレッド アパートメント (STA) からの長時間実行メソッド呼び出しの回避」セクションを参照してください。

于 2009-06-06T03:20:21.440 に答える