如何在从Windows Phone 7调用的WCF服务中配置会话?

时间:2011-05-20 15:14:44

标签: c# silverlight wcf windows-phone-7

我有一个从WP7调用的服务。我知道WP7(Silverlight)直到今天才支持basicHtptBinding,不幸的是它不支持Session,所以我不能在这个服务中使用InstanceContextMode.PerSession和SessionMode.Required。但我在服务器上有一些数据,我需要在会话的基础上保留它。我有什么选择?

2 个答案:

答案 0 :(得分:2)

我不熟悉Windows Phone 7编程,但是如果它允许你使用basicHTTPContextBinding,这是basicHTTPBinding的一种风格,那么我建议你研究一下耐用服务。

持久服务允许您将会话状态保存在某个持久存储中,并通过令牌通过每个新方法调用来访问它。

请查看此link上的博客文章。

即使您无法创建正式的Durable服务,您也可以创建具有类似想法的东西 - 传递令牌(login / userid或其他东西)并从持久存储读取状态 - 数据库表或其他东西。 / p>

如果你让它工作,请告诉我们!

答案 1 :(得分:1)

您可以在服务器端的静态类中使用ConcurrentDictionary,以使用用户的标识作为键来缓存对象。如果您需要很长时间的缓存,您将需要在Windows服务中托管该服务,以避免应用程序池循环等问题。