WCF: Как обнаружить новые подключения к службам WCF PerSession? - PullRequest
2 голосов
/ 14 марта 2010

У меня есть собственная служба WCF, для которой InstanceContextMode имеет значение 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();
}

1 Ответ

3 голосов
/ 14 марта 2010

Вы можете использовать IsInitiating в сервисном контракте

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

См. Следующую ссылку:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...