我试图在Visual Studio 2012中运行相同WCF服务的多个实例。该服务需要是有状态的,因此我使用的是[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
。服务需要模仿服务器行为,因为无论哪个客户端连接到它们,它们都必须维护状态。
我该怎么做?
---编辑---
一个例子: 该服务有三个实例,名为Shop1,Shop2和Shop3。每个人都有自己的平衡作为“状态”。 Client1和Client2现在从Shop1购买东西,这涉及增加Shop1的余额。客户3从Shop2购买东西,增加了它的余额。
目的是Shop1,Shop2和Shop3托管在不同的机器上,但出于测试目的,我想在同一台机器上运行它们。
答案 0 :(得分: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();