2009-03-16 10 views
3

VB6アプリケーションをIISによって呼び出されるCOMオブジェクトとしてカプセル化する必要があります。 VB6アプリケーションで使用されるdllの1つはスレッドセーフではありません。マルチスレッドウィンドウのhttpサーバでスレッドセーフでないDLLを実行する

私のCOMオブジェクトが呼び出されるたびに、同じDLLを他のインスタンスと共有していないことを確認するにはどうすればよいですか?

私はどこかでActiveXのexesが別のプロセスで各インスタンスを実行していると読んでいますが、これで十分でしょうか?

答えて

1

あなたはCOMとアパートメントスレッドモデルlink textを読む必要があります。あなたがやっていることは可能ですが、シングルスレッドのアパートを使用することになるため、パフォーマンスはひどくなります。そのため、すべてのリクエストがシリアル化されます。実際には、これらの要求ごとに個別のプロセスを作成することを検討する必要があります。

+0

私はそれがActiveX exeのやり方と全く同じだと考えました。つまり、呼び出しごとに新しいプロセスを作成します。これは間違っていますか? – cfischer

+0

私はDLLとしてCOMオブジェクトのみを扱っていますが、MSDNを簡単に見て、これを行うためにアウトプロセスActiveXを使用することは可能かもしれません。ホールアプリケーションを移植するのではなく、小さなテストアプリケーションを作成する必要があります。 – LanceSc

関連する問題