我为Silverlight应用程序提供了全面的双工消息传递解决方案。现在我想为它添加一个功能。当用户离开应用程序时,我想通过在退出之前发送最后一条消息来通知服务器。
我尝试在Application Exit事件期间发送双工消息,但DuplexServiceClient
已处于CommunicationState.Faulted
状态。
我还尝试建立新连接并发送消息。在客户端一切似乎都没问题,但根本没有发送任何消息。我用Fiddler检查了两次。
App.Current.Exit += (s, e) =>
{
var dsc = new DuplexServiceClient(_binding, new EndpointAddress("../Services/MyService.svc"));
dsc.SendToServiceAsync(new UserLeave());
};
至关重要的是,我需要在用户离开应用程序后立即通知服务器,因此在这种情况下,超时或类似的解决方法对我来说不够好。
有人有工作解决方案吗?
答案 0 :(得分:1)
我在SO中找到了类似的主题here。 Aliostad的回答让我再次思考这个问题。你永远不能确定你会从客户那里得到他要离开的信号。所以我最终得到了超时解决方案。