我已经了解了不同的WCF服务行为(ConcurrencyModes/InstanceContextModes
),但使用ConcurrencyMode
“PerCall”之间没有区分InstanceContextMode
“单个”/“多个” ”。谁能帮我理解呢?
答案 0 :(得分:16)
这篇关于Sessions, Instancing, and Concurrency的文章很好地解释了每种模式和模式组合的差异。特别是,它在Concurrency部分回答了你的问题:
在PerCall实例化中,并发性是不相关的,因为每个消息都由新的InstanceContext处理,因此,InstanceContext中永远不会有多个线程处于活动状态。
所以答案是,如果您的服务是每次调用实例化,那么在单个和多个并发之间没有差异。
答案 1 :(得分:3)
对于PerCall实例化ConcurrencyMode“Multiple”可以提供更好的吞吐量。见PerCall / Multi-Threaded Services。该文章由this answer提及。