首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wcf operationContext

wcf operationContext
EN

Stack Overflow用户
提问于 2009-06-05 12:19:46
回答 1查看 1.3K关注 0票数 0

你好,我有一个桌面应用程序,它与我构建的wcf服务进行通信

我希望能够在没有db (statefull server)的情况下管理服务器内部登录的用户。

我还想让服务器知道如何处理来自同一台计算机的两个客户端,最简单的方法是什么?

我也有一个以上的服务,客户端使用(登录服务和应用程序服务)

有什么operationContext属性可以帮到我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-07 19:43:03

您可以在服务器内部明确管理已登录的用户。我已经创建了一个处理这种情况的个人模式,通常是这样的:

  • 在WCF服务器内创建一个客户端类,该类将保存有关客户端的所有所需信息。
  • 在服务中创建两个方法: logIn,logOut。login方法应该能够收集您想要存储的客户端的所有信息。确保定义可以唯一标识客户端实例的属性。当客户端连接到服务器时,它调用login方法,允许服务器从客户端收集并保存信息。如果使用回调,这是在客户端中保存CallBack上下文对象的地方。您现在可以将客户端对象保存在WCF服务器实例中(我使用字典)。当客户端注销时,它将调用注销方法,服务器将删除该条目。
  • 在服务器中创建一个KeepAlive方法,该方法定期检查连接的客户端是否仍处于连接状态(如果出现网络故障或应用程序崩溃,客户端可能不会调用注销方法)。

我认为这是在服务器中管理客户端的最简单的方法(不是说它是最好的)。只要您有唯一标识客户端的方法,从同一台计算机上拥有多个客户端(当客户端登录时保存上下文)是没有问题的。

至于你的最后一个问题,拥有多个服务应该不是问题。事实上,对于您提供的不同服务,您具有不同合同(和端点)的相同WCF服务器。ALl协定驻留在相同的WCF服务器实例中,以便它们都可以访问连接的客户端列表。

如果您有进一步的问题,我很乐意回答。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/955585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档