2013-03-13 2 views
0

Я хотел бы написать selfhosted .NET Service Workflow, как это:Проверьте, что клиент подключен к Workflow Service

enter image description here (http://i.stack.imgur.com/Hij20.png)

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

Thank you.

+0

Workflow Service - это служба WCF, вы не подключаетесь к службе WCF как таковой. Клиент вызывает методы обслуживания и (обычно) получает ответ. Что вы подразумеваете под клиентом «живым»? – Joao

+0

@Jota Экземпляр службы сохраняется в цикле до вызова ExitWf. Таким образом, клиент может вызывать функции несколько раз в радиальном порядке. Но если клиент, например, авария ExitWF никогда не вызывается, и экземпляр никогда не будет удален – Mimefilt

ответ

0

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

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

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

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