2012-02-12 133 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消息泵进行同步。