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

如何在WCF服务中维护每个客户端的状态?

  •  0
  • tbischel  · 技术社区  · 14 年前

    我已经创建了一个wcf服务,希望它在来自客户端的调用之间保持状态。我认为最简单的方法是将这个属性添加到服务中:

    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
    

    因为这应该在客户机代理的生命周期(或者极端情况下的超时)内为每个客户机保持一个单独的服务活动。我还添加了一个跟踪用户输入列表的测试函数,并在服务的整个生命周期中吐出包含所有输入的连接字符串。

    当我在由Visual Studio生成的测试客户机中运行此命令时,我发现每次调用都会重置我用来保存过去数据的列表。是否还有其他需要做的事情来维护每个会话的状态?

    1 回复  |  直到 14 年前
        1
  •  2
  •   tbischel    14 年前

    好的,明白了。我使用的是basichttpbinding,它不支持每次会话的实例化。我把它换成了wshttpbinding,Presto,一切正常。