WCF中的get方法返回Null

时间:2013-04-20 20:21:30

标签: c# wcf

我创建了一个wcf库,并且有1个主机和2个客户端连接到它。

在我的WCF中,我有代码存储从客户端A发送到WCF的消息:

 private string CustReady; //whether the customer is ready

我有一个set方法,如下所示

  public string sendReady(string s_Ready)
    {   
        CustReady = s_Ready;
    }

    //gets state of customer (POS)
    public string getReady()
    {
        return CustReady;
    }

客户端A使用sendReady方法并传入一个字符串,然后存储在CustReady中。在客户端B中,单击按钮时会触发getReady方法,并检索CustReady变量中保存的字符串。当我在我的WCF中围绕这两种方法设置断点时,客户端A正确地存储信息,但是当我按下客户端B上的按钮时,它返回null。我想知道是否有人知道为什么?

由于

1 个答案:

答案 0 :(得分:3)

两个客户端正在使用主机的两个实例,因此它们不共享变量。您必须将变量设置为static或将服务器上InstanceContextServiceBehivorAttribute设置为InstanceContextMode.Single(如果未将ConcurrencyMode设置为Multiple,则一次只能处理一个连接到服务。)

  [ServiceBehavior(
    ConcurrencyMode=ConcurrencyMode.Multiple,
    InstanceContextMode=InstanceContextMode.Single
  )]
  public class BehaviorService : IBehaviorService
  {
     //Snip
  }