2012-02-12 6 views
3

COM相互運用機能を使用している.NETライブラリからInternet Explorer 9のJavaScriptエンジンを使用しようとしています。テストコードで正常に動作しますが、ASP.NET(IIS上)で実行すると失敗します。ASP.NETのCOM Interop

私のライブラリはIEのJavaScriptエンジンを使用してCoffeeScriptコンパイラをロードしています。理想的には、コンパイラを一度ロードしてから、単一のIEスクリプトエンジンインスタンスを再利用したいと思います。私はスクリプトエンジンの呼び出しの周りにロックがありますが、私はまだCOMに関連するスレッドの問題を取得していると思います。

異なる.NETスレッドからCOMオブジェクトを呼び出すことはできますか? (すなわち、異なるIISウェブ要求のためのスレッド)。

私はCOMの初心者ですから、どんなアドバイスやリンクなども素晴らしいです。

+0

CoffeeScriptコンパイラが必要な場合は、別のプロセスでホストすることができますか? –

答えて

0

IISはスレッドを操作すること、つまりそれらを作成または管理することはできません。 Webアプリケーションでは安全ではありません。サーバーの変数にコンパイラを格納することができます。アプリケーションまたはセッション

0

ASP.NETアプリケーションから使用したいCOMオブジェクトは、サーバー環境ではなくデスクトップ環境用に設計されています。たとえば、別のスレッドから呼び出されることは想定されていないか、または同期のためのUIメッセージポンプに依存している可能性があります。

関連する問題