为 WCF 客户端强制实施单独的会话
本文关键字:施单独 会话 WCF 客户端 | 更新日期: 2023-09-27 18:36:40
我正在测试我的 WCF 服务,我想向我的 WCF 服务发送两个(虚拟)并行请求。但是,我的InstanceMode = PerSession
很好,我不想更改服务行为。
但是,我的问题是 - 创建两个代理客户端对象是否强制执行单独的会话?或者是否应该采取其他措施来通过不同的客户端会话发送两个请求?我创建了一个示例 C# 控制台应用程序来测试这一点:
MyService client = new MyService();
MyService client1 = new MyService();
client.GetResultsAsync();
client1.GetResultsAsync();
很遗憾,您的要求禁止使用可以解决此问题的主要功能 - 即 InstanceMode = PerCall
.
每个 WCF 服务行为 - 实例和并发管理:
使用默认设置 InstanceMode = PerSession
和 ConcurrencyMode = ConcurrencyMode.Single
然后"很容易得出结论,每个客户端仅在每个客户端的一个线程上执行自己的会话。
每个编程 WCF 服务 - 第 3 版第 177 页:
"当客户端为配置为会话服务的服务创建新代理时,客户端将获得一个新的专用服务实例,该实例独立于同一服务的所有其他实例"