2009-05-07 24 views
0

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

  • Webservice?
  • .NETのCom DLL?
  • その他のオプションはありますか?

aspの古典的なページを書き直すことは問題ではないとします。

EDIT:これをCOMアクセスアセンブリとして書き直すと、これでCom +と同じ問題は解決しませんか?

答えて

1

実際には、どのようにcomのDLLが使用されているかによって異なります。私はあなたが古典的なASPアプリケーションを維持する必要があると仮定している、そうでなければ、すべてを書き直すだろう。

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

+0

interopにポインタが必要な場合はお知らせください。 –

1

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

これは、呼び出し側のクライアント(asp classicアプリ)の変更が最も少ない可能性が高いと思われます。 VB 6 COM APIに一致するようにAPIを設定した場合、それはかなりの差し引きになるはずです。

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

1

私はあなたのVB6コンポーネントがいくつかのCOM +サービスを使用していると仮定しています。もしそうなら、私はServicedComponentとして.NETのVB6コンポーネントを書き換え、Regsvcs.exeを使ってCOM +で登録します。

VB6コンポーネントがデータベースにアクセスしている場合(またはアパートメント呼び出しから長時間実行していない場合)、VB6コンポーネントを.NETに移行することの追加メリットとして、パフォーマンスの問題がなくなることがあります。コンポーネントに同時に多数の要求があります。方法と理由の詳細については、記事Preserving Application Performance When Porting from MTS to COM+のシングルスレッドアパートメント(STA)セクションからの長時間実行メソッド呼び出しを避けるを参照してください。

関連する問題