2009-09-03 3 views
1

У меня есть службы WCF с функцией GetData()Как узнать, отключен ли клиент, прежде чем служба WCF вернет данные?

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

В течение этого периода времени, если я тяну проводов на сервере, ошибка не возникает.

Как узнать, отсоединен ли клиент?

Спасибо.

Edit: Я использую WsHttpBinding

ответ

3

Я не знаю, если это работает только для дуплексного канала, но вы можете подписаться на клиенте событие закрытия канала. Посмотрите на OperationContext.Current.Channel.Closed.

Сообщение в блоге перечислены ниже имеет Более подробную информацию http://www.rcs-solutions.com/blog/2008/09/24/HandlingDisconnectsWithWCF.aspx

1

Какие привязок и протоколы вы используете?

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

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

Марк

+0

нормально, решение было иметь идентификатор каждый раз, когда было сделано соединение и и вернуть подтверждение вручную :( – Josh

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