2012-02-12 132 views
3

我想使用COM互操作從我的.NET庫使用Internet Explorer 9的JavaScript引擎。在測試代​​碼中工作正常,但在ASP.NET中運行時(在IIS上)失敗。從ASP.NET的COM互操作

我的庫正在使用IE的JavaScript引擎來加載CoffeeScript編譯器。所以理想情況下,我想加載一次編譯器,然後重新使用單個IE腳本引擎實例。我有一個鎖定腳本引擎的調用,但我認爲我仍然遇到與COM有關的線程問題。

是否有可能從不同的.NET線程調用COM對象? (即針對不同的IIS Web請求的線程)。

我是一個總的COM新手,所以任何建議,鏈接等將是偉大的。

+0

我想知道,如果你只需要CoffeeScript編譯器,你可以在另一個進程中託管它嗎? – 2012-02-12 05:37:44

回答

0

我記得IIS不允許你使用線程進行操作,即創建或管理它們。它在Web應用程序中不安全。您可以做的是將您的編譯器存儲在服務器變量中:應用程序或會話

0

您可能想要從ASP.NET應用程序使用的許多COM對象都是爲桌面環境而非服務器環境設計的。例如,他們可能不希望從不同的線程中調用,或者可能依賴UI消息泵進行同步。