gpt4 book ai didi

c# - 如何使用 WCF 解决将共享相同数据源但将为每个客户端具有单独实例/ session 的服务器-客户端系统

转载 作者:太空狗 更新时间:2023-10-29 23:47:53 25 4
gpt4 key购买 nike

我正在创建一个服务器客户端系统,服务器将在其中托管服务,我尝试使用 .net 远程处理作为通信方式,但遇到了问题。我在过去的项目中使用过远程处理,但决定离开远程处理框架并切换到 WCF。

系统设计如下:服务器将托管允许客户端从中检索数据的服务。该服务还存储特定的客户端实例变量,这些变量将允许它分别对待客户端(即不同的 session )。该服务旨在从数据库(紧凑型数据库,即 .sdf)获取此数据,执行一些逻辑并通过客户端可以使用的类/结构传递此数据。

最重要的目标是:- 确保每个客户端在服务器上都有自己独立的 session 。- 确保使用相同的数据源实例为所有客户端提供服务。

另一个目标是以二进制格式传输此数据。

我尝试阅读并理解 want single-call 和 singleton mode 的意思,但每次阅读不同的 Material 时,我越是感到困惑,我仍然不相信这两种模式是否能解决我的问题。

如果有人理解我的问题,请向我解释使用方法。

提前致谢。


非常感谢。我已经阅读了第一篇文章(由@Timothy Khouri 撰写),其中介绍的功能正是我想要的。

其次,我不希望客户之间共享一些数据。如果我理解基于 session 的客户端的概念,每个客户端在服务器计算机上都有其服务器对象的副本。我想要的是让这个服务器对象使用相同的 linq2sql 数据对象。我是否将数据对象(linq2sql 对象)作为私有(private)静态成员?或者我应该怎么做。

我还想使用二进制序列化,因为我认为它更安全。我试图防止黑客访问共享类然后能够创建他自己的客户端应用程序版本的情况,因为我已经分配了一些要在客户端处理的安全问题。序列化方法是否/可以对此产生任何影响?

最佳答案

这正是我过去 3 年为一家公司所做的。他们的架构曾经是一堆 ASMX soap 调用,我将其更改为CONNECTED(这正是您要寻找的)、使用 net.tcp (WCF) 的 session 感知架构。

几年前我写了一些文章,解释是并且在文章末尾有一个示例下载应用程序,应该可以帮助您入门。

Client Server Programming with WCF

Duplex WCF Services Hosted in IIS Using Net.Tcp

第一个可能是您特别要找的。

关于c# - 如何使用 WCF 解决将共享相同数据源但将为每个客户端具有单独实例/ session 的服务器-客户端系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com