2013-04-20 2 views
0

wcf 라이브러리를 만들고 호스트 1 개와 클라이언트 2 개를 연결했습니다.WCF의 get 메소드는 Null을 반환합니다.

public string sendReady(string s_Ready) 
    { 
     CustReady = s_Ready; 
    } 

    //gets state of customer (POS) 
    public string getReady() 
    { 
     return CustReady; 
    } 

클라이언트를 다음과 같이

private string CustReady; //whether the customer is ready 

나는 이것에 대한 세트를 얻을 방법이 있습니다 내 WCF 내

나는 클라이언트 A에서 WCF에 보낸 메시지를 저장하는 코드가 A는 sendReady 메서드를 사용하고 CustReady에 저장된 문자열을 전달합니다. 클라이언트 B에서 getReady 메소드는 버튼 클릭이있을 때 시작되어 CustReady 변수 안에 들어있는 문자열을 검색합니다. 이 두 메서드 주위에 내 WCF에 중단 점을 넣을 때 클라이언트 A는 정보를 올바르게 저장하지만 클라이언트 B의 단추를 누를 때 null을 반환합니다. 왜 그 사람이 그걸 알았는지 궁금 해서요?

감사합니다.

+2

어떻게 당신의 InstanceContextMode에 대해 구성된 서비스? 기회는 클라이언트 A이고 클라이언트 B는 다른 서비스 인스턴스에 액세스하고 있습니다. 서비스 코드를 게시 할 수 있다면 더 많이 알려줄 것입니다. – Tim

+0

안녕하세요, Tim, 나는 당신이 내 서비스 코드를 포함 할 내 게시물을 편집 할 다른 서비스 인스턴스에 액세스하고 있다고 생각했습니다. – DorkMonstuh

답변

3

두 클라이언트는 두 개의 호스트 인스턴스를 사용하므로 변수를 공유하지 않습니다. 당신은 (당신이 복수를 들면, ConcurrencyMode를 설정하지 않으면이 서비스에 한 번에 하나의 연결을 처리 할 수 ​​있습니다.) 변수 정적을 만들거나 InstanceContextMode.Single에 서버에 ServiceBehivorAttributeInstanceContext를 설정해야합니다

[ServiceBehavior(
    ConcurrencyMode=ConcurrencyMode.Multiple, 
    InstanceContextMode=InstanceContextMode.Single 
)] 
    public class BehaviorService : IBehaviorService 
    { 
    //Snip 
    } 
+0

감사합니다 스캇 내 문제를 해결 :) – DorkMonstuh

관련 문제