2010-08-10 55 views
0

我有一个WCF应用程序(vb)能够正常工作,但是当用户在服务器正在对另一个用户进行调用时请求信息时,每个人都会挂起!线程的并发性

+1

我不是一个WCF的专家,但我认为你将需要提供更多信息。服务器是否真的“打电话给另一个用户”?或者你的意思是说两个用户都在调用服务器? – 2010-08-10 10:21:29

回答

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/