在Silverlight应用程序退出上发送双工消息

时间:2012-03-16 10:14:37

标签: wcf silverlight polling duplex

我为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());
};

至关重要的是,我需要在用户离开应用程序后立即通知服务器,因此在这种情况下,超时或类似的解决方法对我来说不够好。

有人有工作解决方案吗?

1 个答案:

答案 0 :(得分:1)

我在SO中找到了类似的主题here。 Aliostad的回答让我再次思考这个问题。你永远不能确定你会从客户那里得到他要离开的信号。所以我最终得到了超时解决方案。