2017-03-14 34 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

谢谢你很多! –