2010-03-14 3 views
2

У меня есть самообслуживаемая служба WCF с InstanceContextMode, установленным для PerSession.
Как я могу обнаружить новые клиентские подключения (сеансы) к моей службе из главного приложения и использовать этот новый контекст сеанса для наблюдения за моей службой через свои события?WCF: Как определить новые подключения к службам WCF PerSession?

Что-то вроде:

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

и из моего приложения хоста, чтобы быть в состоянии сделать:

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(); 
}

ответ

Смежные вопросы