【问题标题】:iPhone app gets into a state where network requests never completeiPhone 应用程序进入网络请求从未完成的状态
【发布时间】:2012-12-19 09:53:17
【问题描述】:

每隔一段时间,我的 iPhone 应用就会进入网络请求总是超时的状态,即使其他应用运行良好(甚至可以访问相同的网站)。这与网络可用性的变化没有明显的相关性,并且发生在 3G 和 WiFi 上。有关如何诊断问题的任何建议?

(FWIW,该应用程序使用 MonoTouch 和 HttpWebRequest,但我怀疑出了什么问题是低级的。)

注意:问题通过后台应用程序和更改网络配置仍然存在;唯一的解决方法似乎是终止应用并重新启动它。

更新:我尝试过使用Reachability,但没有效果。 Reachability.InternetConnectionStatus 总是返回 ReachableViaWiFiNetwork(或 ReachableViaCarrierDataNetwork,取决于;同样IsHostReachable() 总是返回 true。Runtime.StartWWAN() 似乎没有区别。

【问题讨论】:

  • 我遇到了同样的问题。而且是断断续续的。我正在使用 MKNetworkKit。
  • 希望我能帮上忙——我现在不是为 iPhone 开发的。从来没有解决这个问题,最终换工作比继续受到我老板的虐待更容易。 :P
  • @David,我担心你会说这样的话。 ;)
  • +1 我们也使用 MT+HttpWebRequest,当我们试图在我们的应用程序中测试网络访问时,这是令人沮丧的,而且这种情况在没有明显解释的情况下发生。它大致发生在我们执行大量并发请求时,我认为这是网络访问信号量的死锁..
  • 您是否只想检测应用何时失去连接,然后让应用在获得连接时自动刷新?

标签: iphone networking xamarin.ios


【解决方案1】:

https://bugzilla.novell.com/show_bug.cgi?id=555439 上存在一个关于此问题的错误,并且已多次尝试解决该问题。截至该错误的最后一条评论,它被假定为已修复,但我猜如果您使用的是 MonoTouch 4.0.3,那么有些情况无法解决。

基本上,这个问题反映在另一个 Stackoverflow 问题中:iPhone 3G Connection Enabling

MonoTouch 尝试解决此问题的方法是调用 MonoTouch.Runtime.StartWWAN(Uri),它使用 NSUrlConnection 打开到 uri 的虚拟连接以强制唤醒网络接口。然后,MonoTouch 回到在 HttpWebRequest 中使用 BSD 套接字 API。

【讨论】:

  • 是的,StartWWAN() 似乎没有帮助。我正在尝试 Miguel's portReachability 看看这是否有所作为。
【解决方案2】:

尝试设置用于拨打电话的NSURLRequesttimeOutInterval 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多