为WCF客户端强制执行单独的会话

时间:2013-10-24 15:00:17

标签: c# wcf session

我正在测试我的WCF服务,我想向我的WCF服务发送两个(虚拟)并行请求。但是,我的InstanceMode = PerSession并且它的方式很好,我不想改变服务行为。

但是,我的问题是 - 创建两个代理客户端对象是否强制执行单独的会话?或者是否还有其他事情需要通过不同的客户端会话发送这两个请求? 我创建了一个示例C#控制台应用程序来测试它:

MyService client = new MyService();
MyService  client1 = new MyService();
client.GetResultsAsync();
client1.GetResultsAsync();

1 个答案:

答案 0 :(得分:2)

遗憾的是,您的要求禁止使用可解决此问题的主要功能 - 即InstanceMode = PerCall

WCF Service Behaviors - Instance and Concurrency Management

使用InstanceMode = PerSessionConcurrencyMode = ConcurrencyMode.Single的默认设置然后“很容易得出结论,每个客户端只有在每个客户端的一个线程上执行它自己的会话。”

Programming WCF Services - 3rd Edition页面177:

“当客户端为配置为会话服务的服务创建新代理时,客户端将获得一个独立于同一服务的所有其他实例的新专用服务实例”