0

我的想法是拥有一个将托管 2 个 WCF 服务的 Windows 服务。

WCF 服务 A将用于希望访问数据库并对其执行 CRUD 操作的客户端。它将公开诸如“GetProducts”和“AddProduct”之类的操作。

WCF 服务 B将用于 WPF 'admin' 控制台,它将连接到服务,并且能够查看哪些客户端应用程序连接到WCF 服务 A,并且它还将公开用于断开客户端与服务的连接的操作,以及查看客户执行了哪些操作。

我的问题是:

问题 1)为了维护连接到WCF 服务 A的客户端列表- 我可能需要在服务 A 的实例中包含客户端名称的某种列表(每个客户端都有一个唯一的名称)。这是否意味着我需要使用“单实例”模式创建WCF 服务 A(否则每个客户端都会生成它自己的服务实例,其中包含只有一个客户端的客户端列表)。或者是将客户端列表放在所有实例都将使用的WCF 服务 A之外的某个静态类中的更好方法(可能使用锁?)

问题 2)是否有任何聪明的方法可以在某个“管理器”容器中设计这两种服务?

谢谢你。

4

1 回答 1

0

您可以为两个合同(标准和管理员)使用具有两个端点的单个服务。您可以对两个端点应用不同的安全性。

如果您将当前连接的用户列表保留为单例,则可以从任一端点更新和读取它,而无需使用 InstanceContextMode 来控制它。请记住,您很可能会有多个线程尝试操作单例,因此您必须确保在访问它时使用线程同步

于 2012-04-17T15:33:01.210 回答