【发布时间】:2011-03-29 20:08:19
【问题描述】:
我有一个用 C# 编写的 Windows 服务,它控制通过 RS232 连接到计算机的设备(收集数据并允许控制设备)。它被命名为 DeviceService 并且工作正常。现在其他应用程序通过 WCF 服务使用它。
但现在我需要将一些功能公开为 COM+ 组件,以便 C++ 中的应用程序可以与此 windows 服务通信(并从中获取实时数据)。
(我知道可能有更好的方法可以做到这一点,但这是无法更改的要求。必须通过 COM+)。
问题是:当我在 DeviceService 中创建这样一个组件并在客户端上激活它时,它看不到任何数据。例如:Windows 服务 (DeviceService) 中的静态变量为在同一程序集中定义的组件返回 null。就像它是另一个实例/上下文一样。
在 Windows 服务中托管 COM+ 组件的正确方法是什么?所以它们共享相同的上下文(静态变量)。
【问题讨论】:
标签: .net windows service components com+