【发布时间】:2009-06-22 13:42:17
【问题描述】:
我有自托管的 net tcp WCF 服务,它公开了两种方法,并且该服务不是线程安全的,它是 (PerSession)。
我发现我的同事开发者正在使用该服务,从不同的线程访问同一个服务对象,到现在它工作正常。
所以我问你是否有来自同一个客户端的并行调用,那么服务将串行?还是我错了?从不同线程访问 wcf 服务对象有好处吗?
【问题讨论】:
标签: c# wcf multithreading
我有自托管的 net tcp WCF 服务,它公开了两种方法,并且该服务不是线程安全的,它是 (PerSession)。
我发现我的同事开发者正在使用该服务,从不同的线程访问同一个服务对象,到现在它工作正常。
所以我问你是否有来自同一个客户端的并行调用,那么服务将串行?还是我错了?从不同线程访问 wcf 服务对象有好处吗?
【问题讨论】:
标签: c# wcf multithreading
“每个会话”是"instance context mode" - 这只是保证在会话期间为您提供相同的服务端对象(实现服务)。我相信你应该看看"concurrency mode"。如果这是“单一”,那么呼叫是同步的(串行)——但这不是唯一的设置; “multiple”和“re-entrant”将允许多个线程同时进入服务。
【讨论】:
Juval Lowy 的“Programming WCF Services”的第 8 章包含了您可能需要了解的有关 WCF 并发性的所有内容。这是 WCF 的非官方“圣经”。我强烈建议检查一下。
【讨论】: