2010-03-14 5 views
2

저는 PerSession으로 설정된 InstanceContextMode를 가진 자체 호스팅 WCF 서비스를 가지고 있습니다.
호스트 응용 프로그램에서 내 서비스에 대한 새로운 클라이언트 연결 (세션)을 어떻게 감지하고 해당 새 세션 컨텍스트를 사용하여 이벤트를 통해 내 서비스를 관찰 할 수 있습니까? 같은WCF : WCF PerSession 서비스에 대한 새 연결을 검색하는 방법은 무엇입니까?

뭔가 :

ServiceHost svc = new ServiceHost(typeof(MyService)); 
svc.Open(); 

// something like: 
svc.NewSession += new EventHandler(...) 

//... 

public void SessionHandler(InstanceContext SessionContext) { 
    MySessionHandler NewSessionHandler = new MySessionHandler(SessionContext); 

    // From MySessionHandler I handle the service's events (FileUploaded, ClientRegistered) 
    // for this session and notify the UI of any changes. 
    NewSessionHandler.Handle(); 
}

답변

3

당신은 서비스 계약에 IsInitiating을 사용할 수 있습니다

[OperationContract(IsInitiating = true)] 
    void FirstMethod(); 

을 참조 :

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 
public class MyService : IMyService { 
    public event EventHandler ClientRegistered; 
    public event EventHandler FileUploaded; 
}

내 호스트 응용 프로그램에서

할 할 수 있도록 다음 링크 :

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/8137553a-8657-475e-b9ca-5914d9c9d57a

+0

귀하의 정보는 매우 도움이되었으므로 원하는 서비스 (ObservableServiceHost)를 찾았습니다! 고맙습니다. –

관련 문제