线程并发

时间:2010-08-10 10:07:54

标签: wcf

我有一个WCF应用程序(vb)可以正常工作但是当用户在服务器正在调用另一个用户时请求信息时,每个人都会挂起!

1 个答案:

答案 0 :(得分:3)

配置服务时,需要配置两件事:

  • InstanceContextMode - 确定为服务客户端请求创建了多少个服务实例,尝试使用PerCall / PerSession,因为它们允许最大的并发性。
  • ConcurrencyMode - 确定每个服务实例是单线程还是多线程。

根据您目前提供的信息,我建议更改这两个设置,看看它是否能解决您的问题:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall,
                 ConcurrencyMode = ConcurrencyMode.Multiple)]
public class MyService : IMyService { ... }

我把我学到的东西放在一起写了一些博客文章,同时在我们的WCF服务上做了一些性能工作,也许它会有所帮助:

http://theburningmonk.com/2010/05/wcf-improve-performance-with-greater-concurrency/