1

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

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

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

1 回答 1

2

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

每个WCF 服务行为 - 实例和并发管理

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

编程 WCF 服务 - 第 3 版第 177 页:

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

于 2013-10-24T15:10:49.170 回答