У меня есть полностью работающее решение для двусторонней передачи сообщений для приложения Silverlight. Теперь я хотел бы добавить одну функцию к нему. Когда пользователь покидает приложение, я хочу уведомить об этом сервер, отправив последнее сообщение перед выходом.
Я пытался отправить дуплексное сообщение во время события выхода из приложения, но DuplexServiceClient
уже находится в состоянии CommunicationState.Faulted
.
Я также пытался установить новое соединение и отправить сообщение. Казалось, что все хорошо на стороне клиента, но сообщение не было отправлено вообще. Я проверил это дважды с помощью Fiddler.
App.Current.Exit += (s, e) =>
{
var dsc = new DuplexServiceClient(_binding, new EndpointAddress("../Services/MyService.svc"));
dsc.SendToServiceAsync(new UserLeave());
};
Важно то, что мне нужно уведомить сервер сразу после того, как пользователь покинет приложение, поэтому в этой ситуации мне не хватает времени ожидания или подобных обходных путей.
У кого-нибудь есть рабочее решение?