【问题标题】:COM Interop from ASP.NET来自 ASP.NET 的 COM 互操作
【发布时间】:2012-03-03 23:08:00
【问题描述】:

我正在尝试通过 COM 互操作从我的 .NET 库中使用 Internet Explorer 9 的 JavaScript 引擎。虽然在测试代码中运行良好,但在 ASP.NET(在 IIS 上)中运行时失败。

我的库正在使用 IE 的 JavaScript 引擎来加载 CoffeeScript 编译器。所以理想情况下我想加载编译器一次,然后重用单个 IE 脚本引擎实例。我锁定了对脚本引擎的调用,但我认为我仍然遇到与 COM 相关的线程问题。

是否可以从不同的 .NET 线程调用 COM 对象? (即不同 IIS Web 请求的线程)。

我是一个完全的 COM 新手,所以任何建议、链接等都会很棒。

【问题讨论】:

  • 我想知道,如果你只需要 CoffeeScript 编译器,你能把它托管在另一个进程中吗?

标签: asp.net .net com


【解决方案1】:

我记得 IIS 不允许您使用线程进行操作,即创建或管理它们。在 Web 应用程序中是不安全的。您可以做的是将编译器存储在服务器的变量中:应用程序或会话

【讨论】:

    【解决方案2】:

    您可能希望在 ASP.NET 应用程序中使用的许多 COM 对象是为桌面环境设计的,而不是为服务器环境设计的。例如,它们可能不会被不同的线程调用,或者可能依赖于 UI 消息泵进行同步。

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 1970-01-01
      • 2011-08-13
      • 2012-07-10
      • 2020-11-10
      • 2011-04-01
      • 2010-12-24
      • 2010-12-14
      • 1970-01-01
      相关资源
      最近更新 更多