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

时间:2010-06-10 00:51:08

标签: c# wcf session-state

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

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

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

当我在visual studio生成的测试客户端中运行它时,我发现每次调用都会重置用于保存过去数据的列表。我还需要做些什么来维持每个会话的状态吗?

1 个答案:

答案 0 :(得分:2)

好的想通了。我使用的是BasicHttpBinding,它不支持每个会话实例化。我将它切换到了一个wsHttpBinding,然后,一切正常。