Android应用随机断开与WCF Web服务的连接

时间:2014-04-11 09:32:16

标签: c# android wcf wcf-data-services

我们使用WCF创建的后端为客户设计了一个Android和iOS应用程序。

我们有一种方法,允许用户在特定的地理位置查看约会。

两个应用程序都能够找到服务器并获取数据,但Android应用程序仅在大约50%的时间内工作(iOS版本100%工作)。我试过Wifi和Cellular并得到相同的结果。

最大的问题是我甚至无法确定问题是在客户端还是服务器上,或者我该如何处理?

我已经读到这可能是由于未关闭的httpURLConnection,但这是我目前唯一真正的领导。

请帮助!!!

由于

1 个答案:

答案 0 :(得分:0)

由于它在Android和iOS上的工作时间总是一半,所以问题可能只是我认为的网络问题。它只发生在某些网络环境中,某些设备上或某些具有某些android-java版本的设备上。我想你将无法做任何事情。 当我开始遇到这些问题时,我总是碰到一个关于网络编程谬误和CAP定理的简单事实:网络是可靠的。所以事实是网络不可靠,你应该在你的解决方案中考虑它。

http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing http://en.wikipedia.org/wiki/CAP_theorem

可能是这个问题有时也会成为成功请求但没有响应问题。同样几乎与上面相同的网络故障问题,你可以做的是处理可能的超时异常等,并在服务器和客户端上适当地处理它。因此,如果使用提交SomePayment方法,不使用普通的WCF方法,而是使用企业服务总线将消息存储到队列中并处理它们,然后进行额外的调用来检查结果。例如,请参阅CQRS模式。

http://msdn.microsoft.com/en-us/library/jj591573.aspx

我知道,不是很有帮助。但是一个可能的答案和我的想法。因为它也让我恼火。因此,您可能无法对此做任何事情(除了最终用户自己处理网络问题)。

我还会在WCF服务方法调用的核心开头记录请求,以排除任何内部WCF行为(排除猜测是代码中的问题)。所有可能的登录服务器和客户端都是一种可行的方法,以防您仍然确信代码中存在问题。并且还看到这种情况发生在所有Android设备(LG,...等)上,或者仅在某些Java版本中发生。