Как обнаружить ошибку канала обратного вызова клиента в сервисе - PullRequest
1 голос
/ 18 февраля 2012

Я использую двустороннюю связь через wsDualHttpBinding.

Каждый клиент, который входит на сервер, GUID и канал обратного вызова, создаются и сохраняются в словаре. (Очень стандартный подход)

Мне нужен способ, чтобы служба могла определить, когда клиент неожиданно выключился. Я пытался подключить функцию для обработчика с ошибками на стороне сервера, но она никогда не вызывается.

Я предполагаю, потому что соединение наполовину открыто на стороне сервера, так как оно использует разные каналы для обратного вызова и канал клиента в wsDualtHttpBinding.

Есть предложения?

1 Ответ

2 голосов
/ 18 февраля 2012

Я не думаю, что вы собираетесь решить эту проблему.Если вам не нужна совместимость с WS *, вы можете создать собственную привязку и канал для периодической отправки пакетов контрольных сообщений между клиентом и сервером, подобно HTTP Long polling .Если пропущено некоторое количество ударов сердца (скажем, 2), предположим, что другой конец отключен.В противном случае сервер не сможет узнать, что клиент неожиданно отключился, пока не истечет время ожидания.

...