每隔一段时间,即使其他应用程序工作正常(甚至可以访问相同的网站),我的iPhone应用也会进入网络请求总是超时的状态。这显然与网络可用性的变化无关,并且在3G和WiFi上都会发生。有关如何诊断问题的任何建议吗?
(FWIW,该应用程序使用MonoTouch和HttpWebRequest,但我怀疑出现问题的是低级别。)
注意:通过后台应用和更改网络配置,问题仍然存在;唯一的修复似乎是杀死应用程序并重新启动它。
更新:我尝试过使用Reachability
,但没有效果。 Reachability.InternetConnectionStatus
始终返回ReachableViaWiFiNetwork
(或ReachableViaCarrierDataNetwork
,具体取决于;同样IsHostReachable()
始终返回true。Runtime.StartWWAN()
似乎没有任何区别。
答案 0 :(得分:6)
在https://bugzilla.novell.com/show_bug.cgi?id=555439有一个关于此问题的错误,并且有几次尝试解决它。截至该bug的最后一条评论,它被认为是固定的,但我想如果您使用的是MonoTouch 4.0.3,那么有些情况无法解决。
基本上,问题反映在其他Stackoverflow问题中:iPhone 3G Connection Enabling
MonoTouch尝试解决此问题的方法是调用MonoTouch.Runtime.StartWWAN(Uri),它使用NSUrlConnection打开与uri的虚拟连接以强制唤醒网络接口。然后,MonoTouch回到在HttpWebRequest中使用BSD套接字API。
答案 1 :(得分:0)
尝试设置用于拨打电话的timeOutInterval
的{{1}}属性。