Проверьте, подключен ли клиент к службе рабочего процесса

Я хотел бы написать автономную службу рабочего процесса .NET следующим образом:

введите здесь описание изображения(https://i.stack.imgur.com/Hij20.png)

Но как я могу определить, жив ли еще клиент? InactivityTimeout привязки WCF, похоже, не срабатывает. Я мог бы написать функцию тайм-аута (измерить время между последним запросом и сейчас). Но это не гарантирует, что клиент отключен, а не просто бездействует. Разве в .NET Framework нет общего пути?

Спасибо.


person Mimefilt    schedule 13.03.2013    source источник
comment
Служба рабочего процесса — это служба WCF, вы не подключаетесь к службе WCF как таковой. Клиент вызывает методы службы и (обычно) получает ответ. Что вы подразумеваете под живым клиентом?   -  person Joao    schedule 13.03.2013
comment
@Jota Экземпляр службы поддерживается циклом до тех пор, пока не будет вызван ExitWf. Таким образом, клиент может вызывать функции несколько раз в произвольном порядке. Но если клиент, например. сбой ExitWF никогда не вызывается, и экземпляр никогда не будет удален   -  person Mimefilt    schedule 18.03.2013


Ответы (1)


вы запускаете эту службу откуда-то, и вам нужно запустить сервер, чтобы получить ответ от службы. вы можете сделать сервер обратного вызова, используя этот код:

 var host = new ServiceHost(serviceCallback, new Uri("localhost:8080"));

а потом в сервисе нужно отправить информацию обратно на этот адрес. так что вы можете динамически отслеживать текущий статус вашей службы в вызывающем клиенте.

person mani mano    schedule 04.04.2013