2010-08-10 53 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/