帮助我在WCF服务中选择实例管理

时间:2010-10-12 08:31:54

标签: c# .net wcf

我的场景是这样的:

在服务器上有一个应用程序,它公开了一个允许与programaticaly交互的COM对象。但是,由于许可限制,我只能通过COM连接一次。因此,在初始化之后,COM对象将返回一个更具指定的ConnectionObject。

我需要建议我为我的服务选择的管理模型,它将与ConnectionObject进行交互:

每次通话服务:

我有两个选择:

  1. 我可以通过COM登录,执行操作和Logout释放连接。但是这个日志记录过程有点耗时。

  2. 我可以创造某种形式 单身类可以保持 对ConnectionObject的引用。 问题是我不知道 如何共享同一个实例 对象通过不同的实例 服务?有可能吗?

  3. 单身人士服务:

    共享ConnectionObject的问题不存在。对象将在服务生命的开始时创建,并在服务关闭时释放。但是我已经读过,不建议使用这种服务。

    感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

鉴于您对COM对象的要求,以及耗时的登录和退出过程 - 我会使用单件服务。我们一直使用这样的WCF服务(也与legagy COM对象交谈)。

您可以将以下属性添加到WCF服务的类定义中以获取行为:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class MyService : IMyServiceContract
{
    [OperationBehavior]
    public void MyServiceCall ()