2017-03-14 1 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를 제공하지만 avvare는하지 않는다. 그 조건이 참일 경우

그래서 WCF 서비스 라이브러리의 변수를 서버의 전체 실행에 대한 값으로 유지할 수 있습니까?

답변

0

기본적으로 각 호출은 서비스의 새 인스턴스에서 수행됩니다. 호스트 측에서는 서비스 계약을 구현하는 서비스로 이동하여 서비스 동작 특성을 사용하여 InstanceContextMode를 설정합니다.

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 

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

+0

당신에게 많이 감사합니다! –