2017-03-14 76 views
1

我正在爲我的高年級考試開發一個自託管的基於c#的WCF服務,我已完成對服務器和客戶端的編碼(兩者都在控制檯中,然後我將升級客戶端UWP),在服務器啓動時,客戶端連接到它,但在服務庫變量將每個客戶端調用函數需要在執行期間保留信息的WCF服務

public static int connettiti() 
    { 
     Random rand = new Random(); 
     int ID = rand.Next(1, 999999); 
     giocatori.Add(ID); 
     contagiocatori++; 
     if (giocatori.Count == 0) 
     { 
      codicevincitore = ID; 
     } 
     else if (giocatori.Count > 2) 
     { 
      return 1000000; 
     } 
     return ID; 
    } 
    public static bool avviare() 
    { 
     bool avvia = false; 
     int count = giocatori.Count; 
     if (count == 2) 
     { 
      avvia = true; 
     } 
     return avvia; 
    } 

列表giocatori始終只有一個成員,所以比賽不會開始時間重設,即使我連接5個客戶端,他們收到他們的ID,但服務器看到他們分開

connettiti工作正常,它給出的ID,但avviare不會ge t那條件是真的

那麼,我怎樣才能使WCF服務庫中的變量保持其整個執行服務器的值?

回答

0

默認情況下,每次調用都將發生在服務的新實例上。在主機端,轉到實現您的服務合約的服務,並使用服務行爲屬性來設置其InstanceContextMode。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 

https://msdn.microsoft.com/en-us/library/ms731193(v=vs.110).aspx

+0

謝謝你很多! –