0

我试图在 Visual Studio 2012 中运行同一 WCF 服务的多个实例。该服务需要是有状态的,所以我使用[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]. 服务需要模仿服务器行为,因为无论哪个客户端连接到它们,它们都必须保持状态。

我怎样才能做到这一点?

- - 编辑 - -

一个示例:服务的三个实例分别称为 Shop1、Shop2 和 Shop3。每个人都有自己的平衡作为“状态”。Client1 和 Client2 现在从 Shop1 购买东西,这涉及增加 Shop1 的余额。客户 3 从 Shop2 购买了一些东西,这增加了它的余额。

目的是 Shop1、Shop2 和 Shop3 托管在不同的机器上,但出于测试目的,我想在同一台机器上运行它们。

4

1 回答 1

0

对双向使用回调模型,可以处理更多的客户端

或者

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]在静态属性中设置和保存状态


var serviseHost1 = new ServiceHost(typeof(Shop));
serviseHost1.AddServiceEndpoint(typeof(Shop), binding, endpoint);
serviseHost1.Open();
var serviseHost2 = new ServiceHost(typeof(Shop));
serviseHost2.AddServiceEndpoint(typeof(Shop), binding, endpoint);
serviseHost2.Open();
于 2013-01-18T09:20:22.567 回答