Отправка дуплексного сообщения при выходе из приложения Silverlight - PullRequest
1 голос
/ 16 марта 2012

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

Я пытался отправить дуплексное сообщение во время события выхода из приложения, но DuplexServiceClient уже находится в состоянии CommunicationState.Faulted.

Я также пытался установить новое соединение и отправить сообщение. Казалось, что все хорошо на стороне клиента, но сообщение не было отправлено вообще. Я проверил это дважды с помощью Fiddler.

App.Current.Exit += (s, e) =>
{
    var dsc = new DuplexServiceClient(_binding, new EndpointAddress("../Services/MyService.svc"));
    dsc.SendToServiceAsync(new UserLeave());
};

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

У кого-нибудь есть рабочее решение?

1 Ответ

1 голос
/ 17 марта 2012

Я нашел похожую тему здесь в SO. Ответ Алиостада заставил меня подумать об этом еще раз. Вы никогда не можете быть уверены, что получите сигнал от клиента, что он уходит. Таким образом, я получил решение timeout .

...