WCF和客户端代码

时间:2012-08-25 15:39:56

标签: wcf client

我是WCF的初学者。我有两个简单的服务:添加客户端名和姓,以及返回客户端数。当我在客户添加时测试服务到客户端时,数量不会增加总是一个。这里代码:

class ClientService : IClientService
{
   List<Client> list = new List<Client>();

   public bool SubmitClient(Client client)
   {
      list.Add(client);
   }

   public int IClientService.GetClient()
   {
      return list.Count;
   }
}

客户代码:

protected void Button1_Click(object sender, EventArgs e)
{
   ClientServiceClient channel = new ClientServiceClient();
   Client cl = new Client();
   cl.FirstName = txtFName.Text;
   cl.LastName = txtLName.Text;

   channel.SubmitClient(cl);
   labbel1.Text=string.Format("Number of clients: {0}"),channel.GetClient());
}

1 个答案:

答案 0 :(得分:0)

您需要在ServiceBehavior属性中提供InstanceContextMode值。 prolbem是您的列表是类级变量,您需要将WCF服务配置为单实例模式。

  • PerSession(默认):为每个会话创建一个新的InstanceContext对象。
  • PerCall :在每次通话之前创建一个新的InstanceContext对象并在其中回收。
  • 单个:只有一个InstanceContext对象用于所有来电,并且在通话后不会被回收。

以下是关于控制WCF实例/会话主题的良好链接:

http://www.codeproject.com/Articles/86007/3-ways-to-do-WCF-instance-management-Per-call-Per