Как я могу сказать, что соединение WCF на основе NetTcp было прервано? - PullRequest
0 голосов
/ 15 марта 2010

Служба WCF основана на NetTcpBinding. Может случиться, что клиент молча исчезает, оставляя сервер без знания, что он больше не подключен.

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

  • Является ли пинг-нить правильным способом решения проблемы или есть лучший, возможно, основанный на событиях способ?
  • Нужно ли окружать каждый код, который связывается с клиентом, путем try / catch и дополнительно удалять его из списка подключенных клиентов?

1 Ответ

2 голосов
/ 23 марта 2010

Мне кажется, я нашел ответ сам.

Существует событие OperationContext.Current.Channel.Closing, которое срабатывает как по неисправным, так и по закрытым соединениям.

...