代码之家  ›  专栏  ›  技术社区  ›  Jon

ASP.NET会话和存储使用COM互操作的对象

  •  0
  • Jon  · 技术社区  · 18 年前

    我正在一个asp.net网站上工作。我们必须使用com互操作与旧的vb6 activex组件交互。在许多情况下,组件依赖于接收上下文对象(它本身就是vb6 activex组件)作为参数。上下文对象的构造成本相当高。

    我了解asp.net会话的其他限制和需要注意的事项, aspnet-session question .

    2 回复  |  直到 9 年前
        1
  •  3
  •   Mike Dimmick    18 年前

    我认为,如果一个请求阻止另一个请求,您将很快遇到问题。

    默认情况下,ASP.NET在其线程上初始化COM,以将该线程置于多线程单元中。VB6组件充其量只是公寓模型。这意味着,当MTA线程创建组件时,如果已经存在一个组件(对于ASP.NET工作进程,它将不存在),它将被放入主STA中,或者专门为STA创建一个新线程。无论哪个MTA线程创建组件,对于无法处理MTA模型的组件,始终使用相同的STA。这意味着对这些组件的每次调用都使用相同的线程,因此并发调用必须排队等待。

    AspCompat 归因于 @Page 指令。

    我不会缓存对象,因为在重用对象时,它们很可能存在跨线程问题。

        2
  •  0
  •   FlySwat    18 年前

    推荐文章